我真的很困惑为我的多层 MVC3 应用程序创建和处理上下文的标准方法。我从 EF4 开始并升级到 EF5,默认的 MSDN 教程似乎总是指示在 using 块中工作,这似乎特别糟糕——在我看来,我必须在方法链上上下传递上下文对象。
我对每个请求的上下文、存储库模式、工作单元模式等进行了大量阅读,似乎每个人都在重新发明轮子。
开发人员真的坐拥大量不同的 EF 实现,还是我在主教程中错过了一种通用方法?
我真的很困惑为我的多层 MVC3 应用程序创建和处理上下文的标准方法。我从 EF4 开始并升级到 EF5,默认的 MSDN 教程似乎总是指示在 using 块中工作,这似乎特别糟糕——在我看来,我必须在方法链上上下传递上下文对象。
我对每个请求的上下文、存储库模式、工作单元模式等进行了大量阅读,似乎每个人都在重新发明轮子。
开发人员真的坐拥大量不同的 EF 实现,还是我在主教程中错过了一种通用方法?
实现 UoW 和存储库模式可能有几种不同的方法,但每个人都同意它非常有用,因为它们在实体框架创建的上下文上创建了一个抽象级别。
不直接使用 EF DBContext 有几个原因,其中两个是防止滥用和抽象不应该向所有开发人员公开的复杂功能。
现在,关于实现,当我以这种方式使用 UoW 和存储库时,我不想重新发明轮子。请看看,告诉我你的想法!这很简单。
希望有帮助!
您需要真正记住的是底层上下文仍然是 DbConnection。建议将其包装在一个using
声明中,这样您就不会忘记在完成后将其丢弃。
除此之外,这真的取决于你在做什么。有时包装在一个using
语句中是好的。其他时候,您可能需要保留它的一个实例并继续使用它,同样,请记住在完成后将其丢弃。
我认为重新定位模式在抽象上下文方面非常流行,因此您只需调用存储库上的方法,然后从上下文返回结果并使其保持活动状态。