Entity framework 4 使用ef4、POCO和LINQ;从众多关系中选择最干净的方式是什么?

Entity framework 4 使用ef4、POCO和LINQ;从众多关系中选择最干净的方式是什么?,entity-framework-4,Entity Framework 4,我试图找到从多对多结构中检索数据的最干净的方法 我的例子是如果你有书和图书馆。一本书可以属于许多图书馆,一个图书馆可以包含许多书。如果我有一个库列表(数组),如何检索库列表中唯一的图书列表 我觉得这个代码应该能用,但运气不好 Library[] libraries = some list of library ids; List<Books> books = context.Books .Where(b => libraries.Cont

我试图找到从多对多结构中检索数据的最干净的方法

我的例子是如果你有书和图书馆。一本书可以属于许多图书馆,一个图书馆可以包含许多书。如果我有一个库列表(数组),如何检索库列表中唯一的图书列表

我觉得这个代码应该能用,但运气不好

Library[] libraries = some list of library ids;
List<Books> books = context.Books
                    .Where(b => libraries.Contains(b.Library.Id)
                    .ToList();
Library[]libraries=一些库ID列表;
List books=context.books
.Where(b=>libraries.Contains(b.Library.Id)
.ToList();
问题是,当我输入“b.Libraries”时,它会给我一个列表选项,不允许我与Library.Id进行比较


如果您有任何建议或想法,我将不胜感激。

未经测试,请尝试以下方法:

List<Library> libraries; // pre-populated
var booksInLibraries = context.Books
                              .Where(x => libraries.Any(y => y.Id == x.Library.Id))
                              .Distinct()
                              .ToList();
列出库;//预填充
var booksInLibraries=context.Books
.Where(x=>libraries.Any(y=>y.Id==x.Library.Id))
.Distinct()
.ToList();

在我的头顶上,未经测试-尝试以下方法:

List<Library> libraries; // pre-populated
var booksInLibraries = context.Books
                              .Where(x => libraries.Any(y => y.Id == x.Library.Id))
                              .Distinct()
                              .ToList();
列出库;//预填充
var booksInLibraries=context.Books
.Where(x=>libraries.Any(y=>y.Id==x.Library.Id))
.Distinct()
.ToList();