我正在使用带有LinQ的Entity Framework,并尝试使用存储库从数据库表(在where语句中过滤)中获取所有行,但我没有关于查询的where语句,但是如果我直接使用数据库上下文(使用相同的where语句)。
方法1:使用存储库和linq进行代码:
IEnumerable<LabOrder> orders = _repLabOrders.LabOrders.Where(o =>
o.SendDate.Month == month && o.SendDate.Year == year && o.Lab ==
user.CodKais.GetValueOrDefault());
存储库类
public class EFLabOrderRepository : ILabOrderRepository<LabOrder>
{
private EFDbContext _context = new EFDbContext();
public IEnumerable<LabOrder> LabOrders => _context.LabOrders;
}
方法2:直接对数据库上下文进行编码:
IEnumerable<LabOrder> orders = _context.LabOrders.Where(o =>
o.SendDate.Month == month && o.SendDate.Year == year && o.Lab ==
user.CodKais.GetValueOrDefault());
最终查询结果:
Left Query WITHOUT where - Right WITH where
我如何使用存储库调用获取where语句的查询?
谢谢。