Entity Framework Core Cosmos DB - 无法计算表达式

问题描述 投票:0回答:1

我使用的是 VS17.10.5 Net 8,Blazor 服务器端。

我有一个 EF Core 上下文,其中包含一个简单的数据类 Person(id、姓名、地址、电话),该数据类被设置为指向 Cosmos DB 数据库。

当我调用 SaveChanges() 保存到 Cosmos DB 时,我收到一条错误消息

无法计算表达式。导致此错误的一个常见原因是尝试将 lamda 传递给委托。

我的代码如下:

Person p = new Person() {id = 1, Name="bob", Address="someAddr", Phone="123", PartitionKey="/person"}
dbContext.Add(p);
dbContext.SaveChanges(); <-- exception
entity-framework-core azure-cosmosdb
1个回答
0
投票

解决我的问题 由于某种原因,EF Core 似乎并未首先支持 Cosmos DB 的数据库。

我需要在执行代码之前确保创建一个。

dbContext.Databse.EnsureCreated()

这在上下文中获取了OnModelCreating()中的实体(构建器)定义,并根据需要创建了 Cosmos 容器。

因为我使用的是 Blazor 模板,所以它还要求我实现 IdentityDbContext 的架构,这需要将 7 个身份实体添加到 2 个附加容器中(由于分区键约束)。

© www.soinside.com 2019 - 2024. All rights reserved.