ABP 配置全局数据过滤器 II

第一篇 那种写法有些复杂,

简单办法是直接注入

 

切换到 ***.EntityFramework 项目

 

 

在Uow 里面创建 ***EfUnitOfWork.cs 类

public class CooperativeEfUnitOfWork : EfUnitOfWork
    {
        public CooperativeEfUnitOfWork(IIocResolver iocResolver,
            IConnectionStringResolver connectionStringResolver,
            IDbContextResolver dbContextResolver,
            IEfUnitOfWorkFilterExecuter filterExecuter,
            IUnitOfWorkDefaultOptions defaultOptions,
            IDbContextTypeMatcher dbContextTypeMatcher,
            IEfTransactionStrategy transactionStrategy) :
            base(iocResolver, connectionStringResolver, dbContextResolver, filterExecuter, defaultOptions, dbContextTypeMatcher, transactionStrategy)
        {
        }

        protected override void BeginUow()
        {
            base.BeginUow();

            string major = AbpSession.GetMajor();
            string projectCode = AbpSession.GetProjectCode();

            SetFilterParameter(SysConsts.DataFilter.MajorFilter, SysConsts.DataFilter.MajorParameter, major);
            SetFilterParameter(SysConsts.DataFilter.ProjectCodeFilter, SysConsts.DataFilter.ProjectCodeParameter, projectCode);
        }
    }

  然后在 **DataModule.cs 里 注册这个类

 

using Abp.Dependency;
using Abp.Domain.Uow;
using Abp.Modules;
using Abp.Zero.EntityFramework;
using JZFZ.Cooperative.EntityFramework;
using JZFZ.Cooperative.Extensions;
using JZFZ.Cooperative.Uow;
using System.Data.Entity;
using System.Reflection;
using Abp.Domain.Repositories;
using JZFZ.Cooperative.Authorization.Users;
using JZFZ.Cooperative.EntityFramework.Repositories;

namespace JZFZ.Cooperative
{
    [DependsOn(typeof(AbpZeroEntityFrameworkModule), typeof(CooperativeCoreModule))]
    public class CooperativeDataModule : AbpModule
    {
        public override void PreInitialize()
        {
            Database.SetInitializer(new CreateDatabaseIfNotExists<CooperativeDbContext>());

            Configuration.DefaultNameOrConnectionString = "Default";

            Configuration.UnitOfWork.RegisterFilter(SysConsts.DataFilter.MajorFilter, true);
            Configuration.UnitOfWork.RegisterFilter(SysConsts.DataFilter.ProjectCodeFilter, true);
            Configuration.UnitOfWork.RegisterFilter(SysConsts.DataFilter.ActiveFilter, true);

            IocManager.Register<IUnitOfWork, CooperativeEfUnitOfWork>(DependencyLifeStyle.Transient);
            IocManager.Register<IRepository<User, long>, UserRepository>(DependencyLifeStyle.Transient);
        }

        public override void Initialize()
        {
            IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
        }
    }
}

  

注意标红的那部分代码

 

转载于:https://www.cnblogs.com/MindSharing/p/11283914.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值