如何解决从EF包含表检索时是否有一种过滤记录的方法
我试图从TblRequisitionMaster(父表)中提取一条记录,并从TblRequestionDetail(子表)中提取isActive==true
条记录。
您的指导将不胜感激...
我正在使用.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开始可用
但是您可以指定Query Filter,它应该开始自动过滤包含的内容。
modelBuilder.Entity<TblRequestionDetail>().HasQueryFilter(d => d.Active == true);
如果您需要检索未过滤的实体,请应用IgnoreQueryFilters运算符。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。