0

我真的很困惑为我的多层 MVC3 应用程序创建和处理上下文的标准方法。我从 EF4 开始并升级到 EF5,默认的 MSDN 教程似乎总是指示在 using 块中工作,这似乎特别糟糕——在我看来,我必须在方法链上上下传递上下文对象。

我对每个请求的上下文、存储库模式、工作单元模式等进行了大量阅读,似乎每个人都在重新发明轮子。

开发人员真的坐拥大量不同的 EF 实现,还是我在主教程中错过了一种通用方法?

4

2 回答 2

1

实现 UoW 和存储库模式可能有几种不同的方法,但每个人都同意它非常有用,因为它们在实体框架创建的上下文上创建了一个抽象级别。

不直接使用 EF DBContext 有几个原因,其中两个是防止滥用和抽象不应该向所有开发人员公开的复杂功能。

现在,关于实现,当我以这种方式使用 UoW 和存储库时,我不想重新发明轮子。请看看,告诉我你的想法!这很简单。

希望有帮助!

于 2013-05-18T12:33:54.030 回答
0

您需要真正记住的是底层上下文仍然是 DbConnection。建议将其包装在一个using声明中,这样您就不会忘记在完成后将其丢弃。

除此之外,这真的取决于你在做什么。有时包装在一个using语句中是好的。其他时候,您可能需要保留它的一个实例并继续使用它,同样,请记住在完成后将其丢弃。

我认为重新定位模式在抽象上下文方面非常流行,因此您只需调用存储库上的方法,然后从上下文返回结果并使其保持活动状态。

于 2013-05-17T19:05:02.993 回答