0

我在 EF 4.0 的 asp.net mvc 2 项目中使用 include 方法

这是我的数据库结构。

Contact
ContactID
ContactName
AddressID (FK)

Address
AddressID
CodePostal
Street

联系人可以包含地址,也可以不包含地址。在某些情况下,我不想要任何地址。在这种情况下,联系人表中的 AddressID 将为空。


我试着这样做

_db.LocationContacts.Include("Contact.Address.City.Province.Country")

如果没有与联系人关联的地址,那就给我一个错误。有没有办法解决这种情况。

非常感谢。

这是错误消息:System.NullReferenceException:对象引用未设置为对象的实例。

4

2 回答 2

0

因为您正在访问地址下为空的城市!

像这样使用它

var contacts=_db.LocationContacts.Include("Contact.Address").ToList();

这为您提供了与地址的联系。

于 2012-05-15T15:32:37.590 回答
0

这条线...

var location = _db.LocationContacts
    .Include("Contact.Address.City.Province.Country").First();

...不抛出NullReferenceException. 当您访问 and 的某些其他属性或方法时,稍后会发生这种情况(location.Address.City对于某些位置,这是预期的,因为它允许具有 NULL 值)。AddressAddress

您只需要检查是否location.Addressnull

if (location.Address != null)
{
    var city = location.Address.City; // OK
}
else
{
    // var city = location.Address.City; // Not OK
}
于 2012-05-16T00:11:26.057 回答