【发布时间】:2019-01-23 00:21:27
【问题描述】:
在下面的查询构建中,Where 子句 B 是否与 Where 子句 A 分开?
truckList = (from truck in _dbcontext.Truck.Where(x => x.ClientId == clientId) //(A)
join comp in _dbcontext.TruckComponent
on truck.Equipment.ProtId equals comp.ComponentId
where truck.EquipmentId > 0 && truck.FieldId > 0 //B
select NewTruckVmFromDbTruck(truck, comp)).AsEnumerable();
它们可以只加入 A 或 B 吗?例如:
truckList = (from truck in _dbcontext.Truck.Where(
x => x.ClientId == clientId &&
truck.EquipmentId > 0 &&
truck.FieldId > 0)
...rest of query...
)
【问题讨论】:
-
运行 SQL 跟踪时,两个 LINQ 查询是否生成相同的数据库查询?
-
Where 子句 B 不依赖于
comp上的任何内容,因此无需与A分开
标签: c# entity-framework linq lambda