如果我有如下所示的模型,如何将其保存到数据库中,以便将通用复杂属性表示为单个文本列?
public class Tracker<T> : BaseModel where T : BaseModel
{
public T Model { get; set; }
}
我见过具有非泛型复杂类型的示例,而没有泛型类型的示例。
答案 0 :(得分:0)
每当要将复杂(非标量)类型存储在单列中时,都需要提供.NET类型到存储类型和格式的自定义转换(例如,将对象序列化为字符串并存储在NVarchar中) (最大)列)。
在EF 6中,您可以通过NotMapped属性来执行此操作,该属性读取和写入映射的字符串属性。
在EF Core中,可以通过使用Value Conversions来避免具有两个属性。