在我的ASP.NET MVC应用程序中,我需要实现数据的持久性。我已经选择了Entity Framework,因为它能够根据实体模型创建类,数据库表和查询,这样我就不必手工编写SQL表创建或Linq到SQL查询。所以简单是我的目标。在ASP.NET MVC应用程序中使用EntityFramework的持久性
我的方法是创建模型,并创建一个自定义的HttpModule
,并在每个请求处调用该对象,并在上下文中调用SaveChanges()
。这让我的生活变得非常艰难 - 实体框架一直在抛出非常奇怪的例外。有时它有效 - 没有例外,但有时它没有。首先,我试图逐个解决问题,但是当我得到另一个问题时,我意识到我的一般方法可能是错误的。
那么这是在ASP.NET MVC应用程序中实现持久性的一般实践吗?每次更改后,我只需拨打saveChanges
?这不是没有效率吗?我不知道如何用Services patter做到这一点(服务与实体协同工作,所以我必须传递上下文实例给他们,这样他们才能保存更改,如果他们做了一些)。
一些学习材料或教程的链接也受到赞赏。
注意:这个问题要求编程练习。我会问那些会认为它含糊不清的人,记住它仍然在解决我非常特别的问题,正确的技术会在投票结束之前为我节省很多技术问题。
通过阅读你的描述我有,你正在使用的上下文的单一共享实例不好的感觉,只是调用'SaveChanges'上http模块中的结束请求期间的实例。 – 2011-03-22 22:48:35
@Ladislav Mrnka你不好的感觉是对的,但现在我正在重建这个使用存储库模式。只需要弄清楚如何正确使用该模式。 – drasto 2011-03-23 04:40:22
在这里你有描述为什么你目前的解决方案没有工作:http://stackoverflow.com/questions/3653009/entity-framework-and-connection-pooling/3653392#3653392 – 2011-03-23 05:46:28