Entity Framework を使用して 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; }
}