我有许多类似于以下的存储库类:
public class ProfileRepository : IProfileRepository{
private MyEntities myEnt = new MyEntites();
...
}
MyEntities
类是使用Entity Framework在我的.edmx文件中生成的实体。我经常在我的所有存储库类中使用此对象,并且所有存储库类都注入到我的控制器中。将myEnt
对象注入到我的存储库类中是否有一种方法/最好的做法,它是否也会以相同的方式使用并发性?
答案 0 :(得分:0)
MyEntities
是你的背景,我假设。如果是,那么是的,将您的上下文注入您的存储库是一个很好的做法。这样,您可以模拟您的存储库,然后您的单元测试可以测试功能,而不必担心数据库(或其他持久性存储)连接。
答案 1 :(得分:0)
答案是肯定的。
基本原理如下:通过在存储库中创建上下文实例,您不允许调用者控制上下文的生命周期。
例如,在基于Web的方案中,您不希望在每次创建存储库类的实例时重新创建上下文。相反,只要请求的处理持续在服务器上,您就希望上下文存在。