添加TakeAsync方法。

This commit is contained in:
2025-07-22 21:36:33 +08:00
parent b881c89d96
commit fe3045c2d2
13 changed files with 86 additions and 14 deletions

View File

@@ -42,4 +42,10 @@ public interface IBaseRepository<T> where T : class
/// </summary>
/// <param name="id">要删除的实体的主键ID。</param>
Task<int> DeleteAsync(int id);
/// <summary>
/// 从数据库获取数据。
/// </summary>
/// <param name="number">从数据库获取数据的条数</param>
Task<List<T>> TakeAsync(int number);
}

View File

@@ -48,4 +48,11 @@ public class DeviceServiceTest
var addDevice= await _deviceService.AddAsync(_mapper.Map<Device>(dbDevice));
Assert.NotEqual(0, addDevice.Id);
}
[Fact]
public async Task TakeAsync_Test()
{
var device= await _deviceService.TakeAsync(2);
Assert.Equal(2,device.Count);
}
}

View File

@@ -1,14 +0,0 @@
namespace DMS.Infrastructure.UnitTests.Services_Test;
public class DeviceServer_Test
{
public DeviceServer_Test()
{
}
public async Task AddDeviceAsync_Test()
{
}
}

View File

@@ -1,6 +1,7 @@
using System.Diagnostics;
using System.Linq.Expressions;
using DMS.Core.Helper;
using DMS.Core.Models;
using DMS.Infrastructure.Data;
using SqlSugar;
@@ -162,4 +163,15 @@ public abstract class BaseRepository<TEntity>
{
await Db.RollbackTranAsync();
}
protected async Task<List<TEntity>> TakeAsync(int number)
{
var stopwatch = new Stopwatch();
stopwatch.Start();
var entity = await Db.Queryable<TEntity>().Take(number).ToListAsync();
stopwatch.Stop();
NlogHelper.Info($"TakeAsync {typeof(TEntity).Name}耗时:{stopwatch.ElapsedMilliseconds}ms");
return entity;
}
}

View File

@@ -51,4 +51,11 @@ public class DeviceRepository : BaseRepository<DbDevice>, IDeviceRepository
NlogHelper.Info($"Delete {typeof(DbDevice)},ID={id},耗时:{stopwatch.ElapsedMilliseconds}ms");
return result;
}
public new async Task<List<Device>> TakeAsync(int number)
{
var dbList = await base.TakeAsync(number);
return _mapper.Map<List<Device>>(dbList);
}
}

View File

@@ -64,4 +64,11 @@ public class MenuRepository : BaseRepository<DbMenu>, IMenuRepository
NlogHelper.Info($"Delete {typeof(DbMenu)},ID={id},耗时:{stopwatch.ElapsedMilliseconds}ms");
return result;
}
public new async Task<List<MenuBean>> TakeAsync(int number)
{
var dbList = await base.TakeAsync(number);
return _mapper.Map<List<MenuBean>>(dbList);
}
}

View File

@@ -53,4 +53,11 @@ public class MqttServerRepository : BaseRepository<DbMqttServer>, IMqttServerRep
NlogHelper.Info($"Delete {typeof(MqttServer)},ID={id},耗时:{stopwatch.ElapsedMilliseconds}ms");
return result;
}
public new async Task<List<MqttServer>> TakeAsync(int number)
{
var dbList = await base.TakeAsync(number);
return _mapper.Map<List<MqttServer>>(dbList);
}
}

View File

@@ -64,4 +64,11 @@ public class UserRepository : BaseRepository<DbUser>, IUserRepository
NlogHelper.Info($"Delete {typeof(DbMenu)},ID={id},耗时:{stopwatch.ElapsedMilliseconds}ms");
return result;
}
public new async Task<List<User>> TakeAsync(int number)
{
var dbList = await base.TakeAsync(number);
return _mapper.Map<List<User>>(dbList);
}
}

View File

@@ -56,4 +56,12 @@ public class VariableHistoryRepository : BaseRepository<DbVariableHistory>, IVar
NlogHelper.Info($"Delete {typeof(DbMenu)},ID={id},耗时:{stopwatch.ElapsedMilliseconds}ms");
return result;
}
public new async Task<List<VariableHistory>> TakeAsync(int number)
{
var dbList = await base.TakeAsync(number);
return _mapper.Map<List<VariableHistory>>(dbList);
}
}

View File

@@ -61,4 +61,11 @@ public class VariableMqttAliasRepository : BaseRepository<DbVariableMqttAlias>,
NlogHelper.Info($"Delete {typeof(DbMenu)},ID={id},耗时:{stopwatch.ElapsedMilliseconds}ms");
return result;
}
public new async Task<List<VariableMqttAlias>> TakeAsync(int number)
{
var dbList = await base.TakeAsync(number);
return _mapper.Map<List<VariableMqttAlias>>(dbList);
}
}

View File

@@ -137,4 +137,11 @@ public class VariableRepository : BaseRepository<DbVariable>, IVariableRepositor
NlogHelper.Info($"Delete {typeof(DbMenu)},ID={id},耗时:{stopwatch.ElapsedMilliseconds}ms");
return result;
}
public new async Task<List<Variable>> TakeAsync(int number)
{
var dbList = await base.TakeAsync(number);
return _mapper.Map<List<Variable>>(dbList);
}
}

View File

@@ -56,4 +56,11 @@ public class VariableTableRepository : BaseRepository<DbVariableTable>, IVariabl
NlogHelper.Info($"Delete {typeof(DbMenu)},ID={id},耗时:{stopwatch.ElapsedMilliseconds}ms");
return result;
}
public new async Task<List<VariableTable>> TakeAsync(int number)
{
var dbList = await base.TakeAsync(number);
return _mapper.Map<List<VariableTable>>(dbList);
}
}

View File

@@ -66,5 +66,9 @@ namespace DMS.Infrastructure.Services
{
return await ServerRepository.GetByIdAsync(id);
}
public virtual async Task<List<TModel>> TakeAsync(int number)
{
return await ServerRepository.TakeAsync(number);
}
}
}