使用默认的JSON.NET序列化设置序列化对象时,子对象及其外键分别设置如下:
{
"id": 1,
"postId": 22,
"tagId": 16,
"post": null,
"tag": null
}
因为我希望对象能够与客户端JavaScript框架一起使用,所以我希望对象更加智能地进行序列化。实体框架已经知道'帖子' object是由< postId'表示的对象,但是如何告诉序列化器呢?
我希望将json序列化,即使被序列化的类的C#实例具有null Post属性。
{
"id": 1,
"post": {
"id": 22
},
"tag": {
"id": 16
}
}
我知道我可以使用JsonConverter
自定义每个对象的序列化,但这涉及为每种类型的对象编写自定义序列化程序。我希望这种类型的序列化行为能够自动完成。
上面的json重申了这个C#类:
public class ExampleBlogObject
{
public int Id { get; set; }
public int PostId { get; set; }
public int TagId { get; set; }
[ForeignKey("PostId")]
public virtual Post Post { get; set; }
[ForeignKey("TagId")]
public virtual Tag Tag { get; set; }
}