微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

EntityFramework CORE-Plus中的IncludeFilter不过滤包含的记录

如何解决EntityFramework CORE-Plus中的IncludeFilter不过滤包含的记录

将下面的Linq查询与Entity Framework Core 3和EntityFramework Core Plus库一起使用,我希望我将在IsActive布尔值设置为true的所有项中返回1 Factor。相反,我得到的是1因素和所有项,无论IsActive值是true还是false。 为什么?

public class Factor 
    {
        public Factor()
        {
            Items = new List<Item>();
        }
        public bool IsActive{ get; set; }
        public int FactorId { get; set; }
        public virtual ICollection<Item> Items { get; set; }
    }
public class Item 
    {
        [ForeignKey("Factor")]
        public int? FactorId { get; set; }
        public virtual Factor Factor { get; set; }
        public bool IsActive{ get; set; }
        public int ItemId { get; set; }

    }
Factors
.IncludeFilter(a => a.Items.Where(b => b.IsActive))
.FirstOrDefault(a=>a.FactorId == 1140)

解决方法

此部分无效:

.IncludeFilter(a => a.Items.Where(a => a.IsActive))

您使用了两次无法编译的“ a”。

也许是由于错误,您当前正在检查因子是否为IsActive而不是所有项目。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。