我的项目使用 EF Core 3.1,并以 Azure Cosmos 作为数据库。
我有一个这样的实体:
public class MyEntity
{
public IEnumerable<string> Names {get;set;}
... other fields
}
Run Code Online (Sandbox Code Playgroud)
我希望最终得到这样的 Cosmos 文档:
{
"Names": ["Name1", "Name2"]
}
Run Code Online (Sandbox Code Playgroud)
对于实体 ( IEnumerable<string>) 我收到错误:
无法映射属性“MyEntity.Names”,因为它的类型为“IEnumerable”,该类型不是受支持的基元类型或有效的实体类型。
如果我将实体更改为:
public class NameEntity
{
public string Name {get;set;}
}
public class MyEntity
{
public IEnumerable<NameEntity> Names {get;set;}
... other fields
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<MyEntity>(e =>
{
e.OwnsMany(p => p.Identifiers);
});
}
Run Code Online (Sandbox Code Playgroud)
该文档如下所示:
{
"Id": "XXXXXX",
"Names:" [
{},
{}
],
} …Run Code Online (Sandbox Code Playgroud)