解决方法:
需要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()
}
});
}