我有一个每个类型层次结构的实体框架表,如下所示:
public class WorkItem
{
public int WorkItemId {get;set;}
}
public class CancelingWorkItem : WorkItem
{
public int WorkItemIdToCancel {get;set;}
[ForeignKey("WorkItemIdToCancel")]
public virtual WorkItem WorkItemToCancel {get;set}
}
public class SomeOtherWorkItem : WorkItem
{
// more fields...
}
当我以Json的形式返回数据库中所有WorkItems
的列表时,任何序列化的CancelingWorkItem
都将包含WorkItemToCancel
字段的完整定义。我可以用JsonIgnore
忽略这个字段,但我想知道是否有不同/更好的方法。我的存储库项目还不依赖Json.Net,所以如果我可以告诉控制器不要序列化该字段,那可能是一个更好的解决方案。
您可以使用IgnoreDataMemberAttribute
属性-它不是来自像JsonIgnore
这样的外部库,我认为默认的序列化程序和Json.NET都可以识别此属性。