修改批量导入变量返回实体,防止Io为0的问题
This commit is contained in:
@@ -246,13 +246,22 @@ public abstract class BaseRepository<TEntity>
|
||||
return result;
|
||||
}
|
||||
|
||||
public async Task<bool> AddBatchAsync(List<TEntity> entities)
|
||||
public async Task<List<TEntity>> AddBatchAsync(List<TEntity> entities)
|
||||
{
|
||||
var stopwatch = new Stopwatch();
|
||||
stopwatch.Start();
|
||||
var result = await Db.Insertable(entities).ExecuteCommandAsync();
|
||||
var retrunEntities = new List<TEntity>();
|
||||
foreach (var entity in entities)
|
||||
{
|
||||
var result = await Db.Insertable(entity).ExecuteReturnEntityAsync();
|
||||
retrunEntities.Add(result);
|
||||
}
|
||||
|
||||
stopwatch.Stop();
|
||||
_logger.LogInformation($"AddBatchAsync {typeof(TEntity).Name}耗时:{stopwatch.ElapsedMilliseconds}ms");
|
||||
return result > 0;
|
||||
|
||||
|
||||
|
||||
return retrunEntities;
|
||||
}
|
||||
}
|
||||
@@ -103,9 +103,10 @@ public class DeviceRepository : BaseRepository<DbDevice>, IDeviceRepository
|
||||
|
||||
}
|
||||
|
||||
public Task<bool> AddBatchAsync(List<Device> entities)
|
||||
public async Task<List<Device>> AddBatchAsync(List<Device> entities)
|
||||
{
|
||||
var dbEntities = _mapper.Map<List<DbDevice>>(entities);
|
||||
return base.AddBatchAsync(dbEntities);
|
||||
var addedEntities = await base.AddBatchAsync(dbEntities);
|
||||
return _mapper.Map<List<Device>>(addedEntities);
|
||||
}
|
||||
}
|
||||
@@ -146,13 +146,19 @@ namespace DMS.Infrastructure.Repositories
|
||||
/// <summary>
|
||||
/// 异步批量添加实体。
|
||||
/// </summary>
|
||||
public async Task<bool> AddBatchAsync(List<EmailAccount> entities)
|
||||
public async Task<List<EmailAccount>> AddBatchAsync(List<EmailAccount> entities)
|
||||
{
|
||||
var dbEntities = _mapper.Map<List<DbEmailAccount>>(entities);
|
||||
var result = await Db.Insertable(dbEntities)
|
||||
.ExecuteCommandAsync();
|
||||
var insertedEntities = new List<DbEmailAccount>();
|
||||
|
||||
return result > 0;
|
||||
// 使用循环逐个插入实体,这样可以确保返回每个插入的实体
|
||||
foreach (var entity in dbEntities)
|
||||
{
|
||||
var insertedEntity = await Db.Insertable(entity).ExecuteReturnEntityAsync();
|
||||
insertedEntities.Add(insertedEntity);
|
||||
}
|
||||
|
||||
return _mapper.Map<List<EmailAccount>>(insertedEntities);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -122,13 +122,19 @@ namespace DMS.Infrastructure.Repositories
|
||||
/// <summary>
|
||||
/// 异步批量添加实体。
|
||||
/// </summary>
|
||||
public async Task<bool> AddBatchAsync(List<EmailLog> entities)
|
||||
public async Task<List<EmailLog>> AddBatchAsync(List<EmailLog> entities)
|
||||
{
|
||||
var dbEntities = _mapper.Map<List<DbEmailLog>>(entities);
|
||||
var result = await Db.Insertable(dbEntities)
|
||||
.ExecuteCommandAsync();
|
||||
var insertedEntities = new List<DbEmailLog>();
|
||||
|
||||
return result > 0;
|
||||
// 使用循环逐个插入实体,这样可以确保返回每个插入的实体
|
||||
foreach (var entity in dbEntities)
|
||||
{
|
||||
var insertedEntity = await Db.Insertable(entity).ExecuteReturnEntityAsync();
|
||||
insertedEntities.Add(insertedEntity);
|
||||
}
|
||||
|
||||
return _mapper.Map<List<EmailLog>>(insertedEntities);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -122,13 +122,19 @@ namespace DMS.Infrastructure.Repositories
|
||||
/// <summary>
|
||||
/// 异步批量添加实体。
|
||||
/// </summary>
|
||||
public async Task<bool> AddBatchAsync(List<EmailMessage> entities)
|
||||
public async Task<List<EmailMessage>> AddBatchAsync(List<EmailMessage> entities)
|
||||
{
|
||||
var dbEntities = _mapper.Map<List<DbEmailMessage>>(entities);
|
||||
var result = await Db.Insertable(dbEntities)
|
||||
.ExecuteCommandAsync();
|
||||
var insertedEntities = new List<DbEmailMessage>();
|
||||
|
||||
return result > 0;
|
||||
// 使用循环逐个插入实体,这样可以确保返回每个插入的实体
|
||||
foreach (var entity in dbEntities)
|
||||
{
|
||||
var insertedEntity = await Db.Insertable(entity).ExecuteReturnEntityAsync();
|
||||
insertedEntities.Add(insertedEntity);
|
||||
}
|
||||
|
||||
return _mapper.Map<List<EmailMessage>>(insertedEntities);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -122,13 +122,19 @@ namespace DMS.Infrastructure.Repositories
|
||||
/// <summary>
|
||||
/// 异步批量添加实体。
|
||||
/// </summary>
|
||||
public async Task<bool> AddBatchAsync(List<EmailTemplate> entities)
|
||||
public async Task<List<EmailTemplate>> AddBatchAsync(List<EmailTemplate> entities)
|
||||
{
|
||||
var dbEntities = _mapper.Map<List<DbEmailTemplate>>(entities);
|
||||
var result = await Db.Insertable(dbEntities)
|
||||
.ExecuteCommandAsync();
|
||||
var insertedEntities = new List<DbEmailTemplate>();
|
||||
|
||||
return result > 0;
|
||||
// 使用循环逐个插入实体,这样可以确保返回每个插入的实体
|
||||
foreach (var entity in dbEntities)
|
||||
{
|
||||
var insertedEntity = await Db.Insertable(entity).ExecuteReturnEntityAsync();
|
||||
insertedEntities.Add(insertedEntity);
|
||||
}
|
||||
|
||||
return _mapper.Map<List<EmailTemplate>>(insertedEntities);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -158,14 +158,20 @@ public class InitializeRepository : IInitializeRepository
|
||||
},
|
||||
new DbMenu
|
||||
{
|
||||
Id = 8, Header = "设置", Icon = "\uE713", ParentId = 0,
|
||||
MenuType = MenuType.MainMenu, TargetViewKey = "SettingView",
|
||||
Id = 8, Header = "变量历史", Icon = "\uE81C", ParentId = 0,
|
||||
MenuType = MenuType.MainMenu, TargetViewKey = "VariableHistoryView",
|
||||
DisplayOrder = 8
|
||||
},
|
||||
new DbMenu
|
||||
{
|
||||
Id = 9, Header = "关于", Icon = "\uE946", ParentId = 0,
|
||||
MenuType = MenuType.MainMenu, TargetViewKey = "", DisplayOrder = 9
|
||||
Id = 9, Header = "设置", Icon = "\uE713", ParentId = 0,
|
||||
MenuType = MenuType.MainMenu, TargetViewKey = "SettingView",
|
||||
DisplayOrder = 9
|
||||
},
|
||||
new DbMenu
|
||||
{
|
||||
Id = 10, Header = "关于", Icon = "\uE946", ParentId = 0,
|
||||
MenuType = MenuType.MainMenu, TargetViewKey = "", DisplayOrder = 10
|
||||
} // 假设有一个AboutView
|
||||
};
|
||||
|
||||
|
||||
@@ -175,9 +175,10 @@ public class MenuRepository : BaseRepository<DbMenu>, IMenuRepository
|
||||
return _mapper.Map<List<MenuBean>>(dbList);
|
||||
}
|
||||
|
||||
public Task<bool> AddBatchAsync(List<MenuBean> entities)
|
||||
public async Task<List<MenuBean>> AddBatchAsync(List<MenuBean> entities)
|
||||
{
|
||||
var dbEntities = _mapper.Map<List<DbMenu>>(entities);
|
||||
return base.AddBatchAsync(dbEntities);
|
||||
var addedEntities = await base.AddBatchAsync(dbEntities);
|
||||
return _mapper.Map<List<MenuBean>>(addedEntities);
|
||||
}
|
||||
}
|
||||
@@ -102,9 +102,10 @@ public class MqttServerRepository : BaseRepository<DbMqttServer>, IMqttServerRep
|
||||
|
||||
}
|
||||
|
||||
public Task<bool> AddBatchAsync(List<MqttServer> entities)
|
||||
public async Task<List<MqttServer>> AddBatchAsync(List<MqttServer> entities)
|
||||
{
|
||||
var dbEntities = _mapper.Map<List<DbMqttServer>>(entities);
|
||||
return base.AddBatchAsync(dbEntities);
|
||||
var addedEntities = await base.AddBatchAsync(dbEntities);
|
||||
return _mapper.Map<List<MqttServer>>(addedEntities);
|
||||
}
|
||||
}
|
||||
@@ -129,10 +129,11 @@ public class NlogRepository : BaseRepository<DbNlog>, INlogRepository
|
||||
/// 此方法主要用于满足接口契约,实际使用应谨慎。
|
||||
/// </summary>
|
||||
/// <param name="entities">要添加的Nlog日志实体列表。</param>
|
||||
/// <returns>操作是否成功。</returns>
|
||||
public new async Task<bool> AddBatchAsync(List<Core.Models.Nlog> entities)
|
||||
/// <returns>添加的Nlog日志实体列表。</returns>
|
||||
public new async Task<List<Core.Models.Nlog>> AddBatchAsync(List<Core.Models.Nlog> entities)
|
||||
{
|
||||
var dbEntities = _mapper.Map<List<DbNlog>>(entities);
|
||||
return await base.AddBatchAsync(dbEntities);
|
||||
var addedEntities = await base.AddBatchAsync(dbEntities);
|
||||
return _mapper.Map<List<Core.Models.Nlog>>(addedEntities);
|
||||
}
|
||||
}
|
||||
@@ -105,9 +105,10 @@ public class UserRepository : BaseRepository<DbUser>, IUserRepository
|
||||
|
||||
}
|
||||
|
||||
public Task<bool> AddBatchAsync(List<User> entities)
|
||||
public async Task<List<User>> AddBatchAsync(List<User> entities)
|
||||
{
|
||||
var dbEntities = _mapper.Map<List<DbUser>>(entities);
|
||||
return base.AddBatchAsync(dbEntities);
|
||||
var addedEntities = await base.AddBatchAsync(dbEntities);
|
||||
return _mapper.Map<List<User>>(addedEntities);
|
||||
}
|
||||
}
|
||||
@@ -104,10 +104,11 @@ public class VariableHistoryRepository : BaseRepository<DbVariableHistory>, IVar
|
||||
|
||||
}
|
||||
|
||||
public Task<bool> AddBatchAsync(List<VariableHistory> entities)
|
||||
public async Task<List<VariableHistory>> AddBatchAsync(List<VariableHistory> entities)
|
||||
{
|
||||
var dbEntities = _mapper.Map<List<DbVariableHistory>>(entities);
|
||||
return base.AddBatchAsync(dbEntities);
|
||||
var addedEntities = await base.AddBatchAsync(dbEntities);
|
||||
return _mapper.Map<List<VariableHistory>>(addedEntities);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -105,10 +105,11 @@ public class VariableMqttAliasRepository : BaseRepository<DbVariableMqttAlias>,
|
||||
|
||||
}
|
||||
|
||||
public Task<bool> AddBatchAsync(List<VariableMqttAlias> entities)
|
||||
public async Task<List<VariableMqttAlias>> AddBatchAsync(List<VariableMqttAlias> entities)
|
||||
{
|
||||
var dbEntities = _mapper.Map<List<DbVariableMqttAlias>>(entities);
|
||||
return base.AddBatchAsync(dbEntities);
|
||||
var addedEntities = await base.AddBatchAsync(dbEntities);
|
||||
return _mapper.Map<List<VariableMqttAlias>>(addedEntities);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -203,10 +203,11 @@ public class VariableRepository : BaseRepository<DbVariable>, IVariableRepositor
|
||||
|
||||
}
|
||||
|
||||
public Task<bool> AddBatchAsync(List<Variable> entities)
|
||||
public async Task<List<Variable>> AddBatchAsync(List<Variable> entities)
|
||||
{
|
||||
var dbEntities = _mapper.Map<List<DbVariable>>(entities);
|
||||
return base.AddBatchAsync(dbEntities);
|
||||
var addedEntities = await base.AddBatchAsync(dbEntities);
|
||||
return _mapper.Map<List<Variable>>(addedEntities);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -104,10 +104,11 @@ public class VariableTableRepository : BaseRepository<DbVariableTable>, IVariabl
|
||||
|
||||
}
|
||||
|
||||
public Task<bool> AddBatchAsync(List<VariableTable> entities)
|
||||
public async Task<List<VariableTable>> AddBatchAsync(List<VariableTable> entities)
|
||||
{
|
||||
var dbEntities = _mapper.Map<List<DbVariableTable>>(entities);
|
||||
return base.AddBatchAsync(dbEntities);
|
||||
var addedEntities = await base.AddBatchAsync(dbEntities);
|
||||
return _mapper.Map<List<VariableTable>>(addedEntities);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user