1

我有许多如下所示的存储库类:

public class ProfileRepository : IProfileRepository{
     private MyEntities myEnt = new MyEntites();
     ...
}

该类MyEntities是我使用实体框架在我的 .edmx 文件中生成的实体。我经常在我的所有存储库类中使用这个对象,并且我所有的存储库类都被注入到我的控制器中。有没有办法/将对象注入到我的存储库类中是一种好习惯,myEnt并且它是否也会以与并发相同的方式工作?

4

2 回答 2

0

MyEntities是你的上下文,我假设。如果是这样,那么是的,这是将上下文注入存储库的好习惯。这样,您可以模拟您的存储库,然后您的单元测试可以测试功能,而不必担心数据库(或其他持久性存储)的连接性。

于 2012-08-30T21:00:16.413 回答
0

答案是“是”。

基本原理如下:通过在存储库中创建上下文实例,您不允许调用者控制上下文的生命周期。

例如,在基于 Web 的场景中,您不希望每次创建存储库类的实例时都重新创建上下文。相反,您希望上下文在服务器上持续处理请求时一直存在。

于 2012-08-30T21:05:44.097 回答