如何解决避免在实体框架中被鉴别器过滤的方法
我在 sql Server 2016 中使用 EF Core 2.2。
我有一个类,它包含两个派生自同一个基本抽象类的属性,并存储在同一个表中:
public class Entity
{
public int Id { get; set; }
public LeftDetails Left { get; set; }
public RightDetails Right { get; set; }
}
public class LeftDetails : Details
{
...
}
public class RightDetails : Details
{
...
}
public abstract class Details
{
public int Id { get; set; }
public int Number { get; set; }
}
现在,我想做的查询很简单:
SELECT * FROM Entity AS e
INNER JOIN Details As d ON e.Id = d.EntityId
WHERE d.Number = 100
但是使用LINQ,我需要做
var results = DbContext.Set<Entity>()
.Where(e => e.Left.Number == 100 || e.Right.Number == 100);
然后将其转换为不必要地使用鉴别器列并且速度要慢得多的查询。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。