gpt4 book ai didi

c# - 使用 Cosmos DB 配置 EF Core 以存储字符串的 ICollection

转载 作者:行者123 更新时间:2023-12-04 12:23:20 37 4
gpt4 key购买 nike

Entity Framework 有一些关于 Embedding entities 的不错的文档但我不知道如何嵌入一个简单的字符串数组 IEnumerable<string> .
示例类

public class Post {
public string Id {get;set;}
public string Content {get;set;}
public IEnumerable<string> Tags {get;set;}
}
这应该在宇宙中保存为:
{
"id": "xxx",
"content": "long content here",
"tags": ["tag1", "tag2"],
...
}
我知道我必须在 OnModelCreating(ModelBuilder modelBuilder) 中配置一些东西的上下文。但我无法正确设置它。
我尝试过以下选项(以及其他几个 ToJsonProperty 方法):
  • modelBuilder.Entity<Post>().OwnsMany(p => p.Tags);
  • modelBuilder.Entity<Post>().OwnsMany<string>(p => p.Tags);

  • 最终我希望能够根据这些标签进行查询,非常感谢任何帮助或正确方向的指示!
    我还找到了 this answer但是将数组转换为逗号分隔的字符串会破坏目的(因为这不允许我们查询这些帖子)。
    别人 asked微软论坛上的问题大致相同,一位微软员工表示,在纯 CosmosDB 中,可以在 Cosmos 中嵌入字符串数组。

    最佳答案

    我找到了一个 github issue在 Cosmos 的 EF 核心提供商处跟踪此问题。
    所以官方答案是,这是当前 不支持 .至少在提到的问题关闭之前。

    关于c# - 使用 Cosmos DB 配置 EF Core 以存储字符串的 ICollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64819447/

    37 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com