using JNPF.DependencyInjection;
using SqlSugar;
using Tnb.Vengine.Domain;
namespace Tnb.Vengine.DataAccess;
///
///
///
public interface IDataAccess : ITransient
{
///
/// 获取 SqlSugar
///
///
///
ISqlSugarClient GetSqlSugar(string? dbCode = null);
///
/// 获取DbLink
///
///
///
VmodelLink GetVmodelLink(string dbCode);
///
/// 获取 Vmodel, 为空时不抛异常
///
Task TryGetVmodelAsync(string id, bool loadNavigate = false);
///
/// 获取 Vmodel, 为空时抛异常
///
Task GetVmodelAsync(string id, bool loadNavigate = false);
///
/// 获取 Vmodel, 为空时不抛异常
///
Task TryGetVmodelAsync(string area, string vmCode, bool loadNavigate = false);
///
/// 获取 Vmodel, 为空时抛异常
///
Task GetVmodelAsync(string area, string vmCode, bool loadNavigate = false);
//Task QueryDataAsync(VmBaseInput input);
///
/// 查询数据 默认方法
///
Task QueryDataAsync(Vmodel vm, VmListInput input);
//Task CreateDataAsync(VmCreateInput input);
///
/// 新增数据 默认方法
///
Task CreateDataAsync(Vmodel vm, VmCreateInput input);
//Task UpdateDataAsync(VmUpdateInput input);
///
/// 更新数据 默认方法
///
Task UpdateDataAsync(Vmodel vm, VmUpdateInput input);
//Task DeleteDataAsync(VmDeleteInput input);
///
/// 删除数据 默认方法
///
Task DeleteDataAsync(Vmodel vm, VmDeleteInput input);
}