遅延読み込みでエンティティ フレームワークを使用する - エンティティが null の場合の関連エンティティの読み込みについて、次の質問をしてください。
employee と employeedetails の 2 つのテーブルがあるとします。上記のケースで、すべての従業員エントリが employeedetails テーブルにエントリを持っているわけではないと仮定します。従業員のリストを調べたい場合
(from e in objectcontext.employees
select new EmployeeEntity
{
EmpID= e.EmployeeID,
FirstName = e.FirstName,
Address = e.employeedetails.Address
}).ToList();
EmployeeEntity は、結果を詰め込むデータ クラスです。
上記のコードは、返されたリストの従業員が 1 人でもテーブル employeedetails にエントリを持っていない場合に壊れます。詳細エントリがない顧客の場合、 e.employeedetails は null になるため、これは明らかです。
上記のクエリを書き直す最良の方法は何ですか?
このようなものは受け入れられますか?
(from e in objectcontext.employees
select new EmployeeEntity
{
EmpID= e.EmployeeID,
FirstName = e.FirstName,
Address = e.employeedetails == null ? "" : e.employeedetails.Address,
}).ToList();
この上記のクエリの効率については明確ではありません-このステートメントはDBレベルでnullチェックを行いますか?
代わりに、次のような明示的なインクルードを行う必要があります
objectcontext.include("employeedetails")...
そして、結果をループして null をチェックしますか?