2012-11-02 106 views
3

我有3個相關的表如何加載多個相關實體DbUpdateConcurrencyException

  1. Person實體:從地址實體兩個外鍵(地址和地址1),並從業主表的外鍵

  2. 地址實體從業主表的外鍵

該人士看來具有地址實體領域,同時跟蹤併發檢查

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

適用於Person域。

然而,當我嘗試訪問

databasevalues.Address.City或databasevalues.Address1.City它給出了一個空例外。這個我覺得是由於地址實體在開始時沒有加載

請給建議

回答

0

您可以嘗試直接在您的查詢加載相關實體:

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

將顯式地加載相關地址條目個人實例返回。

另一個選項是禁用edmx文件中的延遲加載選項;打開文件,然後在屬性面板中設置Lazy Loading = false。

+0

感謝您的回覆。如果我嘗試使用查詢來加載人員編輯視圖,它會給出一個例外,即它不是類型模型人員。我想如果我在加載編輯視圖的同時加載地址,那麼dbupdate併發異常也將具有地址,以及如何在編輯視圖中將地址作爲模型發送的任何想法,否則還有什麼可以作爲解決方案 – user1794664

相關問題