我正在尝试创建一个函数来获取类型为“tableContact”的List<>(),它是一个实体(有点像你做一个简单的选择语句:query.ToList();)
但这变得令人沮丧,因为我不断收到“空对象引用”错误。由于某种原因,“加入”语句不起作用,所以我尝试了一个备用 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();
然后我不能将它转换回列表并且仍然是“空引用”。
编辑 2 是的,我正在运行的查询肯定会带来一个“空”列表。我不介意空列表,但它不应该给出“对象空引用”。