に私はこのエラーが出る理由を理解していない: 『スコープから参照した「C#のエンティティLINQの式のエラー
『変数 『』タイプの』C SomeEntity』を、それは」が定義されていません。
これは私が実行しようとしているコードです。 それは私がIsNicePredicateメソッドに渡すパラメータ値c.Idについて不平を言っているようですが、私は理由を理解できないようです。
var result = _dbContext.Set<SomeEntity>().Select(c => new SomeEntityDto
{
BlahBlah = c.BlahBlah,
Hello = _dbContext.Set<Entity>().Where(IsNicePredicate(c.Id)).ToList(),
XXX = c.XXX,
YYY = c.YYY
});
private Expression<Func<Entity, bool>> IsNicePredicate(int collateralId)
{
Console.WriteLine();
return e => e.AnotherEntity.Any(x => x.Good && x.Bye == collateralId);
}
私はIsNicePredicateメソッドを内部に配置したくありません。私はlinqがどのように動作しているのか分かっていますが、なぜコンテキストが失われているのか分かりません。 – MasterOfPuppets
@ MasterOfPuppets次に、例外スタックトレースを調べる方法も知っていると思います。内部EF表現のビジター実装で予期せぬ(逃した)ケース(バグ?)の結果だと思われます。しかし、それはまったく重要ですか?このように使用することはできません。アンサーアドバイスを受け取り、LINQKit 'AsExpandable' /' Invoke'などを利用する必要があります。 –
少なくともLINQKitのソリューションを提供できますか?私はそのAPIに慣れていません... – MasterOfPuppets