c# - 使用存储库时 where 条件生成不带过滤器的 sql
问题描述
我正在使用带有 LinQ 的实体框架并尝试使用存储库从数据库表中获取所有行(在 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());
最终查询结果:
左查询 WITHOUT where - Right WITH where
如何使用存储库调用获取带有 where 语句的查询?
谢谢。
解决方案
推荐阅读
- python - Python倒计时不是逐行
- php - 如果在 PHP 中具有相似的值,则比较数组对象
- python - 如何安排脚本定期运行?
- r - R:数据帧的条目可以是长度> 1的向量吗?
- .net - 特定代的 .NET GC 之前的 WinDbg 条件断点
- google-calendar-api - Google 日历 API:复制会议数据不起作用
- c# - WPF Button DataTrigger 未正确设置内容
- cron - 如何安排 Linux 中的 Crontab 在 X 的每一分钟运行一次?
- go - Go中的树引用父亲ID
- apache-beam - 通过 Apache Beam 从 Hive 读取