我有 Code First 类/表,其中一个字段的类型为 string/nvarchar。此字符串是 MyClass 实例的 JSON 表示形式。我只想使用 MyClass 实例在代码中进行操作,但将其作为字符串(JSON)存储在数据库中。假设我的表如下所示:
public class Message
{
[Key]
public int Id { get; set; }
public string Title { get; set; }
public string JsonDefinition { get; set; }
}
我更喜欢这样
public class Message
{
[Key]
public int Id { get; set; }
public string Title { get; set; }
[JSON]
public MyClass JsonDefinition { get; set; }
}
其中 JSON 是一个自定义属性,它告诉 EF 将该字段存储为 MyClass 实例的序列化字符串。同时它说 EF:“一旦你拉出实体,用反序列化的 MyClass 实例替换 JsonDefinition 字符串”
是否可以使用现有的 EF 4 机制来实现?如果是这样,那怎么办?
提前致谢。
编辑: MyClass 可以是 Dictionary 或任何其他复杂类型。