C# 使用Cosmos DB配置EF Core以存储字符串的ICollection
Entity framework有一些很好的文档,但是我不知道如何嵌入一个简单的字符串数组C# 使用Cosmos DB配置EF Core以存储字符串的ICollection,c#,entity-framework-core,azure-cosmosdb,azure-cosmosdb-sqlapi,C#,Entity Framework Core,Azure Cosmosdb,Azure Cosmosdb Sqlapi,Entity framework有一些很好的文档,但是我不知道如何嵌入一个简单的字符串数组IEnumerable 样本类 公共类职位{ 公共字符串Id{get;set;} 公共字符串内容{get;set;} 公共IEnumerable标记{get;set;} } 这应该保存在cosmos中,作为: { “id”:“xxx”, “内容”:“此处内容较长”, “标记”:[“标记1”、“标记2”], ... } 我知道我必须在上下文的OnModelCreating(modelbuildermode
IEnumerable
样本类
公共类职位{
公共字符串Id{get;set;}
公共字符串内容{get;set;}
公共IEnumerable标记{get;set;}
}
这应该保存在cosmos中,作为:
{
“id”:“xxx”,
“内容”:“此处内容较长”,
“标记”:[“标记1”、“标记2”],
...
}
我知道我必须在上下文的OnModelCreating(modelbuildermodelbuilder)
中配置一些东西。但我无法正确安装它
我尝试了以下选项(以及其他几种ToJsonProperty
方法):
modelBuilder.Entity().OwnsMany(p=>p.Tags)代码>
modelBuilder.Entity().OwnsMany(p=>p.Tags)代码>
因此,官方的答案是,这是目前不受支持的。至少在上述问题结束之前。我最近试图找到同一问题的答案。没有找到好的解决方案,所以我创建了一个新模型
public class Tag
{
public string Name { get; set; }
}
public class Post
{
...
public IEnumerable<Tag> Tags { get; set; }
}
...
modelBuilder.Entity<Post>().OwnsMany(p => p.Tags);
公共类标记
{
公共字符串名称{get;set;}
}
公营职位
{
...
公共IEnumerable标记{get;set;}
}
...
modelBuilder.Entity().OwnsMany(p=>p.Tags);
虽然这是解决这个问题的好方法,但主要问题仍然是不支持简单的字符串集合。不知道最好的答案是什么。