エンティティであるタイプ「tableContact」の List<>() を取得する関数を作成しようとしています (単純な select ステートメントを実行するときのようなものです: query.ToList();)
しかし、「null object reference」エラーが発生し続けたため、これはイライラしています。何らかの理由で「結合」ステートメントが機能しないため、別の linq ステートメントを試しました。
左結合したい Object2Contacts テーブルがあり、オブジェクトを検索して、このオブジェクトのすべての連絡先を表示しようとしています。また、「匿名型」をエンティティ テーブルに戻す方法もわかりません。
また、すべてのオブジェクトに連絡先があるわけではないため、場合によっては null List<> を返す必要があります。
public List<tableContact> getContactsForObject(int oid)
{
if (oid > 0)
{
var query = (from s in entities.tableContacts
from o in entities.tableObject2Contacts
where s.contact_id == o.contact_id
where o.object_id == oid
select new { s });
if (query != null)
{
IEnumerable<tableContact> e = (IEnumerable<tableContact>)query.ToList();
return (List<tableContact>)e;
}
}
return new List<tableContact>();
}
返されたオブジェクトをループしたい...例:
foreach ( tableContact c in MyList){
WriteLine(c.Name);
}
編集 私も試しました:
List<tableContacts> contacts = (from s in entities.tableContacts
join o in entities.tableObject2Contacts
on s.contact_id equals o.contact_id
where o.object_id == oid
select s).ToList();
その後、それをリストに戻すことはできず、「null参照」のままです。
EDIT 2 はい、私が実行しているクエリは間違いなく「空の」リストをもたらす可能性があります。空のリストは気にしませんが、「オブジェクトの null 参照」を与えるべきではありません。