0
我需要在會話/緩存中存儲用戶設置(如地址,訪問權等),以便通過基本控制器(MVC項目)訪問它們。如何從實體中刪除代理
當我嘗試從會話達到User.Address
如可以想像它說:
的ObjectContext的實例已設置,並且可以不再爲需要連接的操作中使用 。
地址是用戶實體上的導航屬性。
我不想用DTO。
有沒有解決方法?
謝謝。
我需要在會話/緩存中存儲用戶設置(如地址,訪問權等),以便通過基本控制器(MVC項目)訪問它們。如何從實體中刪除代理
當我嘗試從會話達到User.Address
如可以想像它說:
的ObjectContext的實例已設置,並且可以不再爲需要連接的操作中使用 。
地址是用戶實體上的導航屬性。
我不想用DTO。
有沒有解決方法?
謝謝。
我同意格特,但我更喜歡這樣寫。 (用於編譯時錯誤檢查)
public User GetUser(int userId)
{
using (var db = new MyContext())
{
return db.Users.Include(p => p.Address).Single(u => u == userId);
}
}
當您從數據庫中提取用戶時,您必須使用Include
的地址。例如,像這樣的東西(存儲庫或服務):
public User GetUser(int userId)
{
using (var db = new MyContext())
{
return db.Users.Include("Address").Single(u => u == userId);
}
}
地址是一種lazzy載入屬性?如果會話上下文將丟失dbContext,則應該加載它們全部。 –
是的,地址是一個延遲加載屬性。 – shortcode
標題和問題之間的關係是什麼? :) –