Json.Net将$id添加到EF对象,尽管将PreserveReferences Handling设置为“”;无”;
本文关键字:Handling PreserveReferences 设置 id Net 添加 Json 对象 EF | 更新日期: 2023-09-27 18:26:50
我已经研究了如何在JSON序列化期间删除$id,但给出的答案似乎对我不起作用,我希望有人能找出我做错了什么。
这是我的代码:
return JsonConvert.SerializeObject(target, new JsonSerializerSettings {
NullValueHandling = NullValueHandling.Include,
PreserveReferencesHandling = PreserveReferencesHandling.None,
ContractResolver = new CustomContractResolver(),
Converters = CustomConverters
});
它的输出仍然是$id,但是,仅在实体框架对象上,这是设计的吗?如果是这样,有什么方法可以防止实体框架对象上的$id?
自定义ContractResolver
设置将覆盖PreserveReferencesHandling
设置。
在DefaultContractResolver
/IContractResolver
的实现中,添加此项;
public override JsonContract ResolveContract(Type type) {
var contract = base.ResolveContract(type);
contract.IsReference = false;
return contract;
}
这与没有自定义ContractResolver
的PreserveReferencesHandling.None
设置类似。