using System.Collections.Generic;
using System.Diagnostics;
using System.Threading.Tasks;
using NLog;
using PMSWPF.Data.Entities;
using PMSWPF.Extensions;
using PMSWPF.Models;
namespace PMSWPF.Data.Repositories;
///
/// VariableData仓储类,用于操作DbVariableData实体
///
public class VarDataRepository
{
private static readonly ILogger Logger = LogManager.GetCurrentClassLogger();
///
/// 根据ID获取VariableData
///
/// 主键ID
///
public async Task GetByIdAsync(int id)
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
using (var _db = DbContext.GetInstance())
{
var result = await _db.Queryable().In(id).SingleAsync();
stopwatch.Stop();
Logger.Info($"根据ID '{id}' 获取VariableData耗时:{stopwatch.ElapsedMilliseconds}ms");
return result;
}
}
///
/// 获取所有VariableData
///
///
public async Task> GetAllAsync()
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
using (var _db = DbContext.GetInstance())
{
var result = await _db.Queryable().Select(dbVarData => dbVarData.CopyTo())
.ToListAsync();
stopwatch.Stop();
Logger.Info($"获取所有VariableData耗时:{stopwatch.ElapsedMilliseconds}ms");
return result;
}
}
///
/// 新增VariableData
///
/// VariableData实体
///
public async Task AddAsync(VariableData variableData)
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
using (var _db = DbContext.GetInstance())
{
var dbVarData = await _db.Insertable(variableData.CopyTo()).ExecuteReturnEntityAsync();
stopwatch.Stop();
Logger.Info($"新增VariableData '{variableData.Name}' 耗时:{stopwatch.ElapsedMilliseconds}ms");
return dbVarData.CopyTo();
}
}
///
/// 更新VariableData
///
/// VariableData实体
///
public async Task UpdateAsync(VariableData variableData)
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
using (var _db = DbContext.GetInstance())
{
var result = await _db.Updateable(variableData.CopyTo()).ExecuteCommandAsync();
stopwatch.Stop();
Logger.Info($"更新VariableData '{variableData.Name}' 耗时:{stopwatch.ElapsedMilliseconds}ms");
return result;
}
}
///
/// 更新VariableData
///
/// VariableData实体
///
public async Task UpdateAsync(List variableDatas)
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
using (var _db = DbContext.GetInstance())
{
var dbVarDatas = variableDatas.Select(vd=>vd.CopyTo());
var result = await _db.Updateable(dbVarDatas.ToList()).ExecuteCommandAsync();
stopwatch.Stop();
Logger.Info($"更新VariableData {variableDatas.Count()}个 耗时:{stopwatch.ElapsedMilliseconds}ms");
return result;
}
}
///
/// 根据ID删除VariableData
///
/// 主键ID
///
public async Task DeleteAsync(int id)
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
using (var _db = DbContext.GetInstance())
{
var result = await _db.Deleteable().In(id).ExecuteCommandAsync();
stopwatch.Stop();
Logger.Info($"删除VariableData ID '{id}' 耗时:{stopwatch.ElapsedMilliseconds}ms");
return result;
}
}
}