使用EF5和Newtonsoft.Json自引用循环
问题描述:
我正在使用MVC4,EF5数据库优先,Newtonsoft.Json
将对象序列化为JSON,例如在Web API控制器中。使用EF5和Newtonsoft.Json自引用循环
为了避免自我引用循环的问题,我将属性[JsonIgnore]
设置为我生成的类中的特定集合。
我的问题是,现在每次我更新我的模型,我必须读取属性的类。
我该如何避免这种情况?我认为我必须编辑DBModel.tt
脚本?我该怎么办?
答
您应该可以使用具有MetadataType属性的元数据类。如果您生成的类是:
public partial class MyClass{
public string SomeProperty {get; set; }
public string SomePropertyToIgnore {get; set; }
}
然后,你需要创建一个元数据类,像这样(在相同的命名空间):
public class MyClass_Metadata{
[JsonIgnore]
public string SomePropertyToIgnore {get; set; }
}
的创建部分您生成的类(在同一个命名空间)与MetadatType属性应用于:
[MetadataType(typeof(MyClass_Metadata))]
public partial class MyClass{
}
价:http://msdn.microsoft.com/en-us/library/ee707339(v=vs.91).aspx