我有一个实体,其中一个属性是一个复杂对象。我想在我的DB中表示此对象为序列化字符串(具体为JSON)。
我如何配置实体框架(我使用v6.0)将上述映射到varchar,而不是自动映射到表和列的默认EF行为?
不幸的是,实体框架仍然不支持这种属性映射。你可能不得不求助于这样的技巧:
public class MyEntity
{
//...
[NotMapped]
public MyComplexType MyComplexType { get; set; }
public string MySerializedComplexType
{
get { return Serialize(MyComplexType); }
set { MyComplexType = Deserialize(value); }
}
//...
}
(如果您喜欢Fluent API,可以使用modelBuilder.Entity<MyEntity>().Ignore(e => e.MyComplexType)
代替[NotMapped]
属性)