我正在尝试找到从多对多结构中检索数据的最简洁方法。
我的例子是你有书籍和图书馆。一本书可以属于许多图书馆,图书馆可以包含许多书籍。如果我有一个库列表(数组),如何检索库列表中的唯一列表。
我觉得这段代码应该可行,但没有运气......
Library[] libraries = some list of library ids;
List<Books> books = context.Books
.Where(b => libraries.Contains(b.Library.Id)
.ToList();
问题是,当我输入“b.Libraries”时,它给了我一个列表选项,并且不允许我与Library.Id进行比较。
非常感谢任何建议或想法。
答案 0 :(得分:1)
离开我的头顶,未经测试 - 试试这个:
List<Library> libraries; // pre-populated
var booksInLibraries = context.Books
.Where(x => libraries.Any(y => y.Id == x.Library.Id))
.Distinct()
.ToList();