0

EF4.0を使用するasp.netmvc2プロジェクトでincludeメソッドを使用します

これが私のデータベース構造です。

Contact
ContactID
ContactName
AddressID(FK)

Address
AddressID
CodePostal
Street

連絡先には住所を含めることも含めないこともできます。場合によっては、住所が必要ないこともあります。その場合、連絡先テーブルのAddressIDはnullになります。


私はこれをやろうとします

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

連絡先に関連付けられているアドレスがない場合は、エラーが発生します。その状況を解決する方法はありますか?

どうもありがとう。

これはエラーメッセージです:System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

4

2 に答える 2

0

この行...

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

...をスローしませんNullReferenceException。後で、およびlocation.Address.Cityのその他のプロパティまたはメソッドにアクセスしてnullになると発生します(これは、NULL値を持つことが許可されているため、一部の場所で予想されます)。AddressAddress

location.Addressであるかどうかを確認する必要がありますnull

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

あなたはnullであるアドレスの下にある都市にアクセスしているからです!

このように使用してください

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

それはあなたにアドレスとの連絡先を与えます。

于 2012-05-15T15:32:37.590 に答える