实体框架4 - winform应用程序中的生命周期/上下文范围

时间:2011-04-14 13:10:24

标签: winforms entity-framework

很抱歉还有关于EF4上下文生命周期的另一个问题,但我一直想知道这一点,我似乎没有找到答案。我不是很熟悉很多模式或过于复杂的东西(在我看来),所以我想保持简单。

我使用的是一个ASP.NET应用程序,其中上下文由每个http请求管理,在我看来这是一个非常好的方法。

但是我现在正在使用winforms应用程序,如果我只是为每个查询创建上下文,我有时会遇到效果不佳的事务或报告。并不是说这个性能问题是一个非常有问题的事情,我只是想听听ASP.NET中winforms的HTTP请求是否存在一个简单的策略?

1 个答案:

答案 0 :(得分:15)

不要为每个查询创建上下文。同时,不要创建在Form(或您的应用程序)的整个生命周期中使用的上下文。

为单个工作单元创建上下文(可以包含许多查询)。

通过这种方式,您可以将所有更改封装在上下文中,并让Entity Framework将数据库调用包装在一个非常小的事务中,而不必自己担心。

我更喜欢从实体上下文中抽象出Repository和Unit of Work模式,以便我可以独立使用它们(这使得一切都非常清楚)。 MSDN实际上有一篇关于细节的文章:

MSDN - Using Repository and Unit of Work patterns with Entity Framework 4