C# 实体框架核心存在CosmosDB 404错误 公共类dbcontext:dbcontext { 公共数据库集实体1{get;set;} 配置时受保护的覆盖无效(DBContextOptions Builder Options Builder) { optionsBuilder.UseComos( "https://localhost:8081", “C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2NDUVQOBD4B8MGYPMBIZNQYMSECAGQY67XIW/Jw=”, “我的文件”); } 公共类实体1 { [关键] 公共字符串id{get;set;} 公共字符串名称{get;set;} } }
尝试创建文档时出现以下错误。。 使用Microsoft.EntityFrameworkCore.Cosmos Preview3和Cosmos emulatorC# 实体框架核心存在CosmosDB 404错误 公共类dbcontext:dbcontext { 公共数据库集实体1{get;set;} 配置时受保护的覆盖无效(DBContextOptions Builder Options Builder) { optionsBuilder.UseComos( "https://localhost:8081", “C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2NDUVQOBD4B8MGYPMBIZNQYMSECAGQY67XIW/Jw=”, “我的文件”); } 公共类实体1 { [关键] 公共字符串id{get;set;} 公共字符串名称{get;set;} } },c#,asp.net,entity-framework,azure-cosmosdb,ef-core-2.0,C#,Asp.net,Entity Framework,Azure Cosmosdb,Ef Core 2.0,尝试创建文档时出现以下错误。。 使用Microsoft.EntityFrameworkCore.Cosmos Preview3和Cosmos emulator 我认为这是因为Cosmos DB提供程序的预览特性。我也有同样的问题。我已经使用存储模拟器预先创建了我的集合,它要求您定义一个分区键。请注意,预览Cosmos提供程序没有“分区键”的概念。这对Cosmos DB来说是个大问题。然而,仿真器似乎相当有弹性 如果您按照Nick Chapsas的建议执行并调用context.Database.c
我认为这是因为Cosmos DB提供程序的预览特性。我也有同样的问题。我已经使用存储模拟器预先创建了我的集合,它要求您定义一个分区键。请注意,预览Cosmos提供程序没有“分区键”的概念。这对Cosmos DB来说是个大问题。然而,仿真器似乎相当有弹性
如果您按照Nick Chapsas的建议执行并调用context.Database.confured,您应该会看到emulator中创建了一个新集合。如果查看新集合的缩放和设置,您将发现没有分区键。创建新集合时,分区键是必填字段。预览提供程序似乎正在创建无效的集合。仿真器似乎可以,但Azure Cosmos DB不能。您是否确保创建了数据库?您可以使用
context.Database.recreated()是的,我这样做了,它只创建了一个名为dbcontext的新集合,但它不会映射到我已经拥有的集合entities1I did context.Database.EnsureCreated();你说得对,它创建了一个新集合,你是说没有办法将现有集合映射到EF实体吗?不,我认为你不能使用当前预览。分区键是Cosmos DB collections的一项要求,因此我不确定EF提供程序在没有分区键的情况下是如何创建集合的,但确实如此。如果不指定分区键(我已经找到),就无法以任何其他方式创建集合,并且一旦使用分区键创建了一个集合,EF提供程序将无法识别您的集合。基本上,预览被破坏了。
public class dbcontext:DbContext
{
public DbSet<entity1> entities1 { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseCosmos(
"https://localhost:8081",
"C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==",
"myDocuments");
}
public class entity1
{
[Key]
public string id { get; set; }
public string name { get; set; }
}
}