3

私は3つの関連するテーブルを持っています

  1. Person エンティティ: Address エンティティの 2 つの外部キー (Address と Address1) と Owners テーブルの 1 つの外部キー

  2. Address Entity には、Owners テーブルからの 1 つの外部キーがあります

person ビューには Address エンティティからのフィールドがあり、同時実行チェックを追跡している間

var entry = ex.Entries.Single();
var databaseValues = (Person)entry.GetDatabaseValues().ToObject();
var clientValues = (Person)entry.Entity;

Person フィールドでは問題なく動作します。

しかし、アクセスしようとすると

databasevalues.Address.City または databasevalues.Address1.City では null 例外が発生します。これは、最初に Address Entity がロードされていないことが原因だと思います

提案のリクエスト

4

1 に答える 1

0

クエリで関連エンティティを明示的にロードしてみてください。

IQueryable<Person> persons = DataContext.Persons.Where(p => p.City == "Hoboken").Include("Address")

返された人物インスタンスの関連する住所エントリを明示的にロードします。

別のオプションは、edmx ファイルで遅延読み込みオプションを無効にすることです。ファイルを開き、プロパティ パネルを開き、Lazy Loading = false に設定します。

于 2012-11-02T15:40:17.497 に答える