Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 性能问题:EF4.1_Design Patterns_C# 4.0_Entity Framework 4 - Fatal编程技术网

Design patterns 性能问题:EF4.1

Design patterns 性能问题:EF4.1,design-patterns,c#-4.0,entity-framework-4,Design Patterns,C# 4.0,Entity Framework 4,我在我的应用程序(MVC3,WebForms)中使用“Martin’s Fowler”,并且在我的所有应用程序中使用“仅一个”DbContext(“单音”) 详情: 存储库看起来是这样的 class Repository<T> : IRepository<T>, IUnitOfWork 类存储库:IRepository,IUnitOfWork 只有一个存储库,我可以创建更多的存储库,如下所示: class UserRepository { private IRe

我在我的应用程序(MVC3,WebForms)中使用“Martin’s Fowler”,并且在我的所有应用程序中使用“仅一个”DbContext(“单音”)

详情: 存储库看起来是这样的

class Repository<T> : IRepository<T>, IUnitOfWork
类存储库:IRepository,IUnitOfWork
只有一个存储库,我可以创建更多的存储库,如下所示:

class UserRepository {
   private IRepository<User> _repository;
   //dependency injection via constructor using Ninject 
   public UserRepository(IRepository<User> repository) {
       _repository = repository;
   }
}
类用户存储库{
私人IRepository_存储库;
//通过使用Ninject的构造函数进行依赖项注入
公共用户存储库(IRepository存储库){
_存储库=存储库;
}
}
等等

在这些情况下,什么是最佳实践,您有什么建议可以改进

我必须提高我的表现,当然还要学习正确的方法


谢谢大家的回答

您正在为整个应用程序使用一个上下文=您完成了。你的申请。您必须将其更改为对每个请求使用新的上下文实例


另外,我想知道您的问题与性能有什么关系,您的代码段应该表示什么?

多个dbcontext会给我带来一个错误,比如“您正在使用多个dbcontext…”在我改为使用singletone后,它工作得很好,一次也没有让我失望。关于性能的问题:如果创建多个上下文几乎是正确的,这会使性能更好吗?我说过我需要知道如何用正确的方式去做。我已经描述了你需要做什么才能用正确的方式去做。只是你目前的解决方案大错特错了。好吧,谢谢,这对我帮助不大。无论如何,谢谢你的帮助。以下是我的发现:我想它会告诉你你的想法是不正确的。你的观点是什么?它确切地说明了我做了什么。它询问如何为每个请求使用一个新上下文,而您为整个应用程序使用一个上下文(singleton)。