使用LINQ合并2个查询的结果

时间:2019-06-29 08:45:43

标签: entity-framework linq

我有2个实体BookBorrow,如果我获取 1。。在一个查询中包含Book个实体的列表,然后获取 2。 另一个Borrow实体的列表中,如何使用LINQ建立这样的列表?

书籍清单:

Book.Borrows
Book.Borrows
Book.Borrows
Book.Borrows

因此,每个Book都有从获取Borrow列表的第二次查询映射到它的借项列表。

导航属性:

Borrow类:

public virtual Book Book { get; set; }

Book类:

public virtual List<Borrow> Borrows { get; set; }

1 个答案:

答案 0 :(得分:1)

无需进行2个查询。您只需要一个即可完成。您可以在单个查询中引用两者。首先使用导航属性。因此,您也可以轻松地遍历相关对象。

context.Books
    .Include("Borrows")  // If you have lazy loading
    .Where(..some condition...)
    .Select(b => new BookModel
    {
       BookName = b.Name,
       Borrows = b.Borrows.Select(...select properties...).ToList()
    }