0

嗨我有一個MVC應用程序,我從中調用存儲過程。我使用存儲過程的原因是因爲查詢非常複雜,並且它已經存在,所以我不妨使用它。重新填充實體框架導航屬性

它基本上回到了我:

IEnumerable<Activity> 

這是很好的。

有許多外鍵的屬性像一個:

AreaId 

在這裏面被填充。

但是在我的模型我有導航屬性:

// Navigation properties 
     public virtual Area Area { get; set; } 

這當然是不填充通過存儲過程得到它。

我想知道是否有一種簡單的方法來獲得這些導航屬性填充。

我相信我聽說過一些命令,你可以調用你的實體刷新導航屬性。

+0

http://stackoverflow.com/questions/1035677/using-a-stored-procedure-in-entity-framework-how-do-i-get-the-the-entity-to-have –

回答

1

您可以使用此:

context.Entry(loadedEntity).Reference(l => l.Area).Load(); 

,但如果你把它的每一個實體在您的枚舉,因爲它會爲你想要加載每Area做單獨的查詢和數據庫往返它不會有很好的表現。這是使用存儲過程的缺點 - 一旦你這樣做,你應該有另一個存儲過程來加載所有需要的區域。