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();
我有两个表,都定义了主键,两者之间有一个外键。
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();