[解决]ABP操作数据库 报错:System.ArgumentNullException:“Value cannot be null. Arg_ParamName_Name”

解决方法:

        需要IUnitOfWorkManager,开启事务、给租户赋值、提交事务

直接上代码:  

		private readonly IUnitOfWorkManager unitOfWorkManager;

        private readonly IRepository<t_drainage_info, string> drainageRepositor;

        public ListenMqttMessageServer(IUnitOfWorkManager _unitOfWorkManager, IRepository<t_drainage_info, string> _repository) 
        {
            unitOfWorkManager = _unitOfWorkManager;
            drainageRepositor = _repository;
        }

        private async void Instance_MessageEvent(object sender, MessageEventArgs e)
        {
            await Task.Run(async () =>
            {
                using var uow = unitOfWorkManager.Begin();
                using (unitOfWorkManager.Current.SetTenantId(null))
                {
                    //在这里写操作数据库代码就不会报错了
					//增删改操作别忘了提交事务
					await uow.CompleteAsync()
                }
            });
        }

猜你喜欢

转载自blog.csdn.net/wwwwerewrew/article/details/130626271