関連するDepartmentエンティティを持つPersonのリストを返すSQL文があります。 PersonクラスにはDepartment IDがあり、エンティティフレームワークの魔法を使って、データベースからロードするときに正しいDepartmentオブジェクトを関連付けます。SQL照会でEFをロードする関連エンティティ
私のSQL文は次のとおりです。
私は、クエリを実行MSSMSでSELECT *
FROM PERSON
INNER JOIN DEPARTMENT ON PERSON.DEPARTMENT_ID = DEPARTMENT.ID
WHERE UPPER(FORENAME) LIKE '%RALPH%'
ORDER BY SURNAME
私は次のような結果を得る:
しかし、私はDbSet.SqlQueryを使用してSQLを実行するとき( )私は以下の結果を得ます:
最初の項目で部門オブジェクトがどのようにNULLになっていても、2番目の項目にはどのようにデータが格納されているかに注意してください。
私は多くの情報を提供していないことを知っていますが、私はそこに単純な答えがあることを望んでいます。ところで
あなたが見ることができるようにLazyLoadingEnabledがfalseに設定されている
..私はこれをtrueに変更しても問題が解決します知っています。私はそれが必要かどうかを呼び出すためにそれを有効にするつもりはない。以前にそのDbContextインスタンスに部門をロードした場合は
みんなありがとう
なぜあなたは適切なEFクエリではなく 'SqlQuery'を使用していますか? – DavidG
私はフィルタを実行する人々のリストを持っています。私はSQL文を生成するユーザが提供する基準を使用します。検索の潜在的なバリエーションがたくさんあるので、SQL文がやり方のように思えました。 – Murphybro2
EFを使用することにはほとんど意味がありません。 – DavidG