C#JavascriptSerializer因EF对象失败:超过递归限制

C#JavascriptSerializer因EF对象失败:超过递归限制,c#,json,entity-framework,serialization,C#,Json,Entity Framework,Serialization,我想要一种廉价的方法来克隆数据库对象。我的计划是序列化然后反序列化对象。我的代码如下: var newHireRequisition =_context.NewHireRequisitions.Single(x => x.newHireRequisitionPk == newHireRequisitionId); JavaScriptSerializer js = new JavaScriptSerializer(); js.RecursionLimit =

我想要一种廉价的方法来克隆数据库对象。我的计划是序列化然后反序列化对象。我的代码如下:

var newHireRequisition =_context.NewHireRequisitions.Single(x => x.newHireRequisitionPk == newHireRequisitionId);
        JavaScriptSerializer js = new JavaScriptSerializer();
        js.RecursionLimit = 1;
       var json = js.Serialize(newHireRequisition);
        NewHireRequisition newReq = js.Deserialize<NewHireRequisition>(json);
var newhirequisition=\u context.newhirequisitions.Single(x=>x.newhirequisitionpk==newhirequisitionid);
JavaScriptSerializer js=新的JavaScriptSerializer();
js.RecursionLimit=1;
var json=js.Serialize(newHireRequisition);
NewHireRequestionNewReq=js.Deserialize(json);
如您所见,我将递归级别设置为1,以避免遍历NewHireRequestions表的关系。我认为这是“Serialize”函数中的一个缺陷

当此代码运行时,Serialize命令出现异常。例外情况是:

System.ArgumentException:“已超出递归限制。”

数据模型如下所示: 但我只想要中间的一个对象,而不是相关的行。


感谢您对这项技术的任何帮助,或以其他方式浅克隆实体框架数据对象。

感谢@crashmaster!查看,我看到Json.Net序列化程序支持LINQ to Json,而.Net本机JavaScriptSerializer不支持。这解决了我的问题。

文档中说明了应该使用而不是。不确定这是否有帮助,但需要检查一下。你指的是我链接的JavascriptSerializer文档顶部的@crashmstr?@StealthRabbi什么文档。明白了。谢谢奇怪的是,MS建议使用第三方库:)您的解决方案到底是什么?我使用SerializeObject方法将对象转换为字符串,然后使用DeserializeMethod创建了一个新对象,将对象强制转换为我的对象类型。有关更多信息,请参阅。