using Abp.Dependency; using Abp.Domain.Repositories; using Abp.EntityFrameworkCore.Repositories; using Microsoft.EntityFrameworkCore; using VberZero.BaseSystem.Roles; using VberZero.Data; using VberZero.DomainService; using VberZero.DomainService.Sqls; namespace VberAdmin.DomainService.Sqls; public class SqlManager : VzDomainServiceBase, ISqlManager, ISingletonDependency { public SqlManager(IRepository repository) { Repository = repository; } private IRepository Repository { get; } /// /// 执行给定的命令 /// /// 命令字符串 /// 要应用于命令字符串的参数 /// 执行命令后由数据库返回的结果 public int Execute(string sql, params object[] parameters) { return Repository.GetDbContext().Database.ExecuteSqlRaw(sql, parameters); } public async Task ExecuteAsync(string sql, params object[] parameters) { return await Repository.GetDbContext().Database.ExecuteSqlRawAsync(sql, parameters); } /// /// 创建一个原始 SQL 查询,该查询将返回给定泛型类型的元素。 /// /// 查询所返回对象的类型 /// SQL 查询字符串 /// 要应用于 SQL 查询字符串的参数 /// public List SqlQuery(string sql, params object[] parameters) where T : class, new() { return Repository.GetDbContext().Database.SqlQuery(sql, parameters).ToList(); } public async Task> SqlQueryAsync(string sql, params object[] parameters) where T : class, new() { var result = Repository.GetDbContext().Database.SqlQuery(sql, parameters).ToList(); return await Task.FromResult(result); } }