zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    KNN算法
    从malloc中窥探Linux内存分配策略
    ECC校验原理以及在Nand Flash中的应用
    周大福、周六福、周生生等区分
    USB时钟为什么是48MHz
    NFS网络操作系统介绍以及相关应用
    办公技巧
    嵌入式设备中使用短信服务
    Android App测试要点
    Excel中 设置使得每行的颜色不一样
  • 原文地址:https://www.cnblogs.com/taoshengyujiu/p/8427080.html
Copyright © 2011-2022 走看看