使用存储库时条件在何处生成不带过滤器的sql

时间:2019-02-05 12:19:57

标签: c# sql entity-framework

我正在使用带有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语句的查询?

谢谢。

0 个答案:

没有答案