Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架中反向的导航属性_C#_Asp.net Mvc 4_Json.net_Entity Framework 5 - Fatal编程技术网

C# 实体框架中反向的导航属性

C# 实体框架中反向的导航属性,c#,asp.net-mvc-4,json.net,entity-framework-5,C#,Asp.net Mvc 4,Json.net,Entity Framework 5,我使用现有数据库创建了EF模型,如下链接所示。作为基本的主详图模型,db名称为Sheet和SheetDetail 前面的答案解决了递归导航属性问题,但我的新问题是 如何进行反向查询? 我以前的问题是: var result = db.Sheet.Include("SheetDetails").FirstOrDefault(s => s.Id == id); 我的新查询必须是: var result = db.SheetDetail.Include("Sheet").FirstOrDef

我使用现有数据库创建了EF模型,如下链接所示。作为基本的主详图模型,db名称为Sheet和SheetDetail

前面的答案解决了递归导航属性问题,但我的新问题是 如何进行反向查询?

我以前的问题是:

var result = db.Sheet.Include("SheetDetails").FirstOrDefault(s => s.Id == id);
我的新查询必须是:

var result = db.SheetDetail.Include("Sheet").FirstOrDefault(d => d.Id == id);
但正如你想象的那样,它无法成功。 我添加了另一个导航属性,但运气不好

如何实现上述查询?
请注意,json.NET在序列化过程中会导致错误。

您收到的错误是什么?@YeahStu//感谢您的关注。接收到Json.NET递归引用错误。我同意错误的原因,因为它实际上是一个循环。但我几乎不知道如何实现这一目标。我是否需要创建另一个edmx文件?您是否仍在使用上一个答案中的JsonIgnore属性?如果是这样的话,我看不出怎么还有一个循环。@YeahStu//噢,有什么东西弄混了。如果我将其他导航属性从SheetDetail添加到图纸(与上一个方向相反),则会发生循环。但是,如果没有这一点,我如何在新查询中创建Include(“Sheet”)?只需禁用递归引用错误:
JsonConvert.SerializeObject(result,new-JsonSerializerSettings{ReferenceLoopHandling=ReferenceLoopHandling.Ignore})