我讀過一些關於在實體框架中創建通用資源庫的文章。在每一篇文章的ObjectContext的是作爲參數傳遞給構造是這樣的:實體框架通用資源庫生命週期
public Repository(ObjectContext context)
{
_context = context;
}
在Web應用程序來處理ObjectContext的生活方式是每個Web請求的首選方式。這意味着如果在Web環境中使用這些存儲庫,則每個Web請求也必須具有生活方式。這擴展到服務使用存儲庫,並進一步如果我們堅持構造注入...
我認爲ObjectContext的生命週期應該在倉庫外處理,例如在HttpModule中。 我還想將存儲庫作爲單例處理,然後ObjectContext不能在構造函數中注入。必須使用另一種將ObjectContext獲取到存儲庫中的機制,就像ObjectContextFactory一樣。
用單身人士的生活方式處理儲存庫的缺點是什麼?
但問題是,當您在容器中註冊ObjectContext和生活方式到PerWebRequest時,存儲庫還必須註冊PerWebRequest/Transient生活方式,因爲它們在構造函數中注入了ObjectContext。 – Marcus 2011-03-30 22:14:01
存儲庫具有每個請求生命期的問題是什麼? – eulerfx 2011-03-30 23:07:41
使用構造函數注入使用存儲庫的所有其他類也必須具有每個請求的生存期。 – Marcus 2011-03-31 06:06:30