2011-08-27 41 views
0

我在我的應用程序(MVC3,WebForms)中使用Repository design pattern「Martin's Fowler」,並且在整個應用程序中都使用了「ONLY ONE」DbContext(「Singletone」)。性能問題:EF4.1

詳情: Repository是看起來像,

class Repository<T> : IRepository<T>, IUnitOfWork 

只有一個倉庫至極我創造更多的資源庫,就像這樣:

class UserRepository { 
    private IRepository<User> _repository; 
    //dependency injection via constructor using Ninject 
    public UserRepository(IRepository<User> repository) { 
     _repository = repository; 
    } 
} 

等等...

在這些情況下,最佳做法是什麼,你有什麼建議讓自己變得更好?

我必須提高自己的表現,當然要學會正確的做法。

謝謝大家的答案。

回答

2

您正在爲整個應用程序使用一個上下文=完成了。您的應用程序will not work。您必須將其更改爲每個請求使用新的上下文實例。

另外我想知道你的問題與性能有關,你的代碼片段代表什麼?

+0

多個dbcontext拋出一個錯誤,就像「你正在使用多個dbcontext ....」後,我改變使用singletone它很好地工作,並沒有讓我失敗了一次。對於性能問題:如果創建多個上下文,這會使性能更好,這幾乎是正確的?我說過我需要知道如何以正確的方式做到這一點。 – IamStalker

+0

我已經描述了你需要做的正確方法。簡單地說你現在的解決方案是非常錯誤的。 –

+0

好的,謝謝,真的沒有太大的幫助。 任何方式感謝您的幫助。 – IamStalker