我想使用实体框架执行 NOT EXISTS 查询,并在 LinqPad 中使用以下查询。
var context = new CSSDbEntities();
(from s in context.Appliances
where !context.AvailableResources.Any(es => es.ApplianceId == s.ApplianceId)
select s).Dump();
但是,当我尝试将其传输到我的应用程序时(我将上下文包装在 IUnitOfWork 接口中以允许我使用 Unity 模拟它/注入它/这就是我继承代码库的方式,它失败并显示“无法创建一个常量”运行时的异常。
我试图执行的实际代码是......
var query = from x in unitOfWork.Appliances
where !unitOfWork.AvailableResources.Any(es => es.ApplianceId == x.ApplianceId)
select s;
unitOfWork 中的属性实现如下...
public IDbSet<Appliance> Appliances
{
get { return _objectContext.Appliances; }
}
public IDbSet<AvailableResource> AvailableResources
{
get { _objectContext.AvailableResources; }
}