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