gpt4 book ai didi

entity-framework - EF 6.1 Code First 中原始类型集合的流畅映射

转载 作者:行者123 更新时间:2023-12-02 04:54:45 24 4
gpt4 key购买 nike

是否可以在 Entity Framework 6.1 Code First 中对基本类型的集合属性进行流畅映射?

我知道这在早期版本中是不可能的。

例如:

public class Foo
{
public int Id;
public virtual List<string> Bar;
}

使用流畅的映射:

modelBuilder.Entity<Foo>()
.HasMany<string>(f => f.Bar);

最佳答案

在 EF 中不能直接 donde。但是,有一个解决方法:您可以创建一个未映射到数据库的集合属性,以及另一个映射到数据库的属性,该数据库包含集合的序列化版本。如果集合有很多元素,您将遇到性能问题。如果没有,用它也没关系。

伪代码:

public class Entity
{
[NotMapped]
public List<string> MyStrings
{
get { return Serializer.Deserialize(SerializedMyStrings); }
set { SerializedMyStrings = Serializer.Serialize(value); }
}

// Mapped to DB
public string SerializedMyString { get; set; }

}

注意:根据序列化程序的实现,该属性可以是 string(XML、JSON、与特殊分隔符的连接,即任何由文本表示的内容)或 byte[] (如果您使用二进制序列化器)。此数据将存储在您的数据库表的单列中

有几个问题:

关于entity-framework - EF 6.1 Code First 中原始类型集合的流畅映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24023773/

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