Fluent API C# 跨实体查询

Fluent API C# querying across entities

我有两个表,都定义了主键,两者之间有一个外键。

    Table 1         Table 2

PK  ID           PK ID   
                 FK Table1ID.ID 
    Name            DescriptionId
                    Description

我想做的是通过 ID 恢复所有 Table1,但只是恢复 Table2 的一小部分。

这将从表 2 中恢复 ID 300 的所有记录。

var option = unitOfWork.Repository<Table1>()
                       .Query(x => x.ID == 300 )
                       .Include(y => y.Table2)
                       .Select()
                       .FirstOrDefault();

以上我修改如下:

.Query(x => x.ID == 300 && x.Table2.Where(w => w.DescriptionId == 2))

.Include(y => y.Table2.Where(w => w.DescriptionId == 2))

这些都不起作用。

您需要执行与以下类似的操作。

var option = unitOfWork.Repository<Table1>()
                       .Query(x => x.ID == 300 )
                       .Include(y => y.Table2)
                       .Select(z => new{Field1 = x.Field1, Field2 = x.Field2, Field3 = y.Field1})
                       .FirstOrDefault();