实体框架MVC3上的嵌套查询

时间:2012-12-26 07:31:38

标签: asp.net-mvc-3 nested entity

我尝试了几件事,但它不起作用。基本上,我想在EF MVC3上添加嵌套查询。

SQL查询:

  

从Book中的Book_PK中选择*(从库中选择Book_Ref)   其中Library_Ref ='18bd9526-f3e9-4d5b-86cd-ccfea64b6f7b')

     

Book_PK是Book
的主键   Book_ref是Book的外键

     

Library_Ref只是过滤Book_ref

的属性

我有2个表:Book和Library,它们通过外键连接。

我只有一个输入,即id,但这不是Library的主键。 我试过了:

`
School.Models.Entities.SchoolAll db = new Models.Entities.SchoolAll(); // db consists whole database

var temp = db.Books.Where(e => e.Book_PK.Contains(db.Libraries.Where(f => f.Library_Ref == id))).ToList();
// where id is one of the field of Library`

每个图书馆实体可能有一个或可能是Book实体。因此,查询的结果应该是列表。我需要将此列表保存到一个变量中。任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

您可以使用Single方法而不是Where方式,如下所示

var temp = db.Books.Single(e => e.Book_PK.Contains(db.Libraries.Where(f => f.Library_Ref == id)));

答案 1 :(得分:0)

成功完成,转换到以下查询:

  

从Book中的Book_PK中选择*(从库中选择Book_Ref)   其中Library_Ref ='18bd9526-f3e9-4d5b-86cd-ccfea64b6f7b')

进入下面的实体框架:

  

db.Books.Where(y => y.Libraries.Any(r => r.Library_Ref ==   ID))。ToList()

感谢stackoverflow