• netCore webapi Uow实现方式


    参照

    http://www.cnblogs.com/GreedyL/p/7474368.html

    思路:

    1、创建ActionFilter拦截请求,在拦截器中注入IUOWIUOW里面注入IDbContext,借助EFcommit自带的事务来实现事务处理

    2Action中调取一组业务服务层IServiceIService里面注入IRepository(IRepository里面注入了IDbContext)

    3、事务实现的关键在于IUOWIrepository中的IdbContext为同一个对象。这个是通过Autofac中的InstancePerLifetimeScope来实现

    builder.RegisterType<HouseManageObjectContext>().As<IDbContext>().InstancePerLifetimeScope();

    4InstancePerLifetimeScope类似于变量的作用域一样。在首个注入的对象的作用域内,再遇到注入情形时,不会注入,直接应用之前已经注入的对象。

    这个作用域适用于嵌套的生命周期。一个使用Per Lifetime 作用域的component在一个 nested lifetime scope内最多有一个实例。
    当对象特定于一个工作单元时,这个非常有用。比如,一个HTTP请求,每一个工作单元都会创建一个nested lifetime,如果在每一次HTTP请求中创建一个nested lifetime,那么其他使用 per-lifetime component在每次HTTP请求中只会拥有一个实例。
    这种配置模型在其他容器中等价于per-HTTP-request, per-thread等。
    builder.RegisterType<X>().InstancePerLifetimeScope();
    ASP.NET 
    WCF集成中,每一次web请求或者方法调用,InstancePerLifetimeScope会被默认附加到component

    代码详情参见housemanage项目和chinabeacon.data sdk

  • 相关阅读:
    evernote100个做笔记的好方法
    平衡二叉树的调整模版
    晨间日记的奇迹
    hdu 2952 Counting Sheep
    hdu 1535 Invitation Cards
    poj 3259 Wormholes(spfa)
    poj 2263 Heavy Cargo(floyd)
    poj 3268 Silver Cow Party(SPFA)
    hdu 1690 Bus System
    hdu 3631 Shortest Path(Floyd)
  • 原文地址:https://www.cnblogs.com/taoshengyujiu/p/8427080.html
Copyright © 2020-2023  润新知