0

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

SQL查询:

select * from Book where Book_PK in ( select Book_Ref from Library where 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`

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

4

2 回答 2

0

您可以使用 Singl 方法 insetead Of Where,如下所示

var temp = db.Books.Single(e => e.Book_PK.Contains(db.Libraries.Where(f => f.Library_Ref == id)));
于 2012-12-26T08:17:09.270 回答
0

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

select * from Book where Book_PK in ( select Book_Ref from Library where Library_Ref='18bd9526-f3e9-4d5b-86cd-ccfea64b6f7b' )

进入以下实体框架:

db.Books.Where(y => y.L​​ibraries.Any(r => r.Library_Ref == id)).ToList()

感谢stackoverflow

于 2012-12-31T08:24:49.687 回答