我在ASP.MVC2中遇到了EF的上下文问题。
我认为改进DataBase上的一些操作的最佳方法是我创建了Repository。我的repo类添加,删除,选择了很多项,所以我不需要写
(using <name>Context = new (... etc ...) ) { ... }
存储库消除了每个操作的初始化上下文,但不处理上下文。
管理上下文的最佳方法是什么?如果我创建其他存储库类并尝试执行任何需要来自两个上下文的对象的操作,则存在问题。
有没有其他方法或更好的方法来实现存储库,来管理上下文?有趣的模式吗?
答案 0 :(得分:4)
上下文是一个工作单元,因此您需要每个Web请求一个。
因此,您应该使用构造函数注入(即构造函数参数)为所有存储库提供单个上下文,并将其置于请求的末尾。
大多数DI框架都会自动执行此操作。
答案 1 :(得分:2)
这是一篇关于EF顶部的存储库模式的好文章:
您还可以查看有关工作单元模式实施的帖子:
答案 2 :(得分:0)