asp.net-mvc - 从 EF Include Table 检索时有没有办法过滤记录
问题描述
我正在尝试从 TblRequisitionMaster(父表)和isActive==true
TblRequestionDetail(子表)中提取记录。您的指导将不胜感激...
我正在使用 .NET Core 3.1 和 EF CORE。我需要实体框架核心解决方法,而不是像 EF+ 这样的第三方工具解决方法。
这是我的存储库功能。
public TblRequisitionMaster GetRequisitionMaster(int reqNo, byte companyId)
{
Company_CHLContext context = new Company_CHLContext(companyId);
return context.TblRequisitionMaster.Include(i => i.TblRequestionDetail).SingleOrDefault(s => s.RequestionNo == reqNo && s.RecordStatus.Equals("AC") );
}
课程详情
public partial class TblRequisitionMaster
{
public TblRequisitionMaster()
{
TblRequestionDetail = new HashSet<TblRequestionDetail>();
}
public int RequestionNo { get; set; }
public string ReqNo { get; set; }
public virtual ICollection<TblRequestionDetail> TblRequestionDetail { get; set; }
}
public partial class TblRequestionDetail
{
public int RequestionNo { get; set; }
public byte SequenceNo { get; set; }
public int ItemId { get; set; }
public bool? IsActive { get; set; }
public virtual TblRequisitionMaster RequestionNoNavigation { get; set; }
}
解决方案
包含过滤器仅从 EF Core 5 开始可用
但是您可以指定应该自动开始过滤包含的查询过滤器。
modelBuilder.Entity<TblRequestionDetail>().HasQueryFilter(d => d.Active == true);
如果您需要检索未过滤的实体:应用IgnoreQueryFilters运算符。
推荐阅读
- c# - 具有泛型类型和泛型列表的类
- c - 如何创建函数的内联副本
- spring - 为什么 JpaRepository.delete() 在删除实体之前检索它?
- c# - 任何人都可以帮助 C# 控制台应用程序中的新手吗?
- javascript - 切换时汉堡菜单不会打开
- python - Jupyter 笔记本(Web 界面)将 matplotlib 绘图缩小 2 倍
- x86 - 由于 cpu 乱序执行或缓存一致性问题,是否需要内存屏障?
- python - 无法确定 SyntaxError 的原因:在第 17 行,<=100
- r - t 检验中的错误:没有足够的 x 观察值
- python - 使用 Python 和 Selenium 访问网站 https://www.aliexpress.com/ 后如何点击关闭横幅