プロジェクトで POCO を使い始めて以来、クエリで他のエンティティを参照するデータのクエリに問題がありました。それの厄介な部分は、LINQPad で同じクエリを試すとうまくいくことです。
たとえば、次の esql クエリは次のとおりです。
SELECT VALUE TOP(1) a.AccountUrl FROM AppEntities.Accounts AS a WHERE EXISTS(SELECT VALUE u FROM a.Users AS u WHERE u.Username=@username)
アプリケーションから実行しようとすると、次のエラーがスローされます。
ユーザーは、現在読み込まれているスキーマのタイプ 'DelightModel.Account' のメンバーではありません。単純な識別子の近く、1 行目、104 列目。
Web アプリケーションが参照したのと同じ dll(リポジトリ ライブラリ) を使用して LINQPad で同じクエリを試したところ、うまくいきました。プロジェクションなしで完全なエンティティを返すようにクエリを変更しても (以下の例)、問題なく動作します。
SELECT VALUE TOP(1) a FROM AppEntities.Accounts AS a WHERE EXISTS(SELECT VALUE u FROM a.Users AS u WHERE u.Username=@username)
上記のクエリは私のアプリケーションで機能します。
これはバグですか、それとも何か間違っていますか?
私を正しい方向に向けるのを手伝ってください。ありがとう。