我有一个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可以是字典或任何其他复杂类型。