Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 Net MVC 3工作单元处理_Asp.net Mvc 3_Entity Framework 4.1_Unit Of Work - Fatal编程技术网

Asp.net mvc 3 Net MVC 3工作单元处理

Asp.net mvc 3 Net MVC 3工作单元处理,asp.net-mvc-3,entity-framework-4.1,unit-of-work,Asp.net Mvc 3,Entity Framework 4.1,Unit Of Work,我正在使用EntityFramework4.1编写一个ASP.NETMVC3Web应用程序。我的工作单元与本优秀教程中描述的相同 但是,我没有将UoW类注入控制器,而是在服务类中注入,如下所示 public class ListService : IListService { private IUnitOfWork _uow; public ListService(IUnitOfWork uow) { _uow = uow; } pub

我正在使用EntityFramework4.1编写一个ASP.NETMVC3Web应用程序。我的工作单元与本优秀教程中描述的相同

但是,我没有将UoW类注入控制器,而是在服务类中注入,如下所示

public class ListService : IListService
{
    private IUnitOfWork _uow;

    public ListService(IUnitOfWork uow)
    {
        _uow = uow;
    }

    public IList<List> GetAllListTypes()
    {
        return _uow.Lists.Get().OrderBy(l => l.description).ToList();
    }
}
我试图修改此方法并将其放在我的服务类中,但它不起作用,即UoW类中的dispose方法从未被调用

protected override void Dispose(bool disposing)
{
        _uow.Dispose();
}
如果有人能告诉我如何处置我的UoW类,我将不胜感激

谢谢各位。

各位


这个问题的答案是,当我为我的国际奥委会使用Unity时,可以设置Unity来处理我的工作单元。

您正在创建什么样的服务?它是ASP.NET Web API、WCF、Windows服务、业务逻辑服务还是什么?有人打过电话来处理你的服务吗?谁负责处理您的服务?@LadislavMrnka-服务类是为我的业务逻辑设置的ASP.Net类,它位于我的服务层,位于我的UI和我的域模型之间。我的服务类中没有dispose方法。@tgriffiths-您使用什么IoC容器进行依赖项注入?他们中的大多数人都能够处理他们创建的组件。@SergeyRybalkin-我使用Unity作为IoC容器。@Tgrifiths-看起来可以让Unity来处理您的一次性组件,请查看这个-。不过,我建议您改用Autofac,它可以很好地与确定性Disposalc配合使用。您可以分享一下您是如何做到这一点的吗?例如,您是否使用了内置的Unity LifeTimeManager?据我所知,默认的TransientLifetimeManager会为每个调用新建一个实例,而不会处理调用Dispose()。基本上,您是如何向Unity注册UOW的?
protected override void Dispose(bool disposing)
{
        db.Dispose();
        base.Dispose(disposing);
}
protected override void Dispose(bool disposing)
{
        _uow.Dispose();
}