使用实体框架将通用复杂属性另存为序列化列

时间:2018-12-01 20:01:55

标签: c# entity-framework serialization

如果我有如下所示的模型,如何将其保存到数据库中,以便将通用复杂属性表示为单个文本列?

public class Tracker<T> : BaseModel where T : BaseModel
{
    public T Model { get; set; }
}

我见过具有非泛型复杂类型的示例,而没有泛型类型的示例。

1 个答案:

答案 0 :(得分:0)

每当要将复杂(非标量)类型存储在单列中时,都需要提供.NET类型到存储类型和格式的自定义转换(例如,将对象序列化为字符串并存储在NVarchar中) (最大)列)。

在EF 6中,您可以通过NotMapped属性来执行此操作,该属性读取和写入映射的字符串属性。

在EF Core中,可以通过使用Value Conversions来避免具有两个属性。