using System.Linq; using System.Threading.Tasks; using Abp.Dependency; using Abp.Domain.Repositories; using Abp.EntityFramework.Repositories; using WeOnlineApp.Authorization.Roles; namespace WeOnlineApp.CommonManager.Sqls { public class SqlManager : ISqlManager, ISingletonDependency { public SqlManager(IRepository repository) { Repository = repository; } private IRepository Repository { get; } /// /// 执行给定的命令 /// /// 命令字符串 /// 要应用于命令字符串的参数 /// 执行命令后由数据库返回的结果 public int Execute(string sql, params object[] parameters) { return Repository.GetDbContext().Database.ExecuteSqlCommand(sql, parameters); } public async Task ExecuteAsync(string sql, params object[] parameters) { return await Repository.GetDbContext().Database.ExecuteSqlCommandAsync(sql, parameters); } /// /// 创建一个原始 SQL 查询,该查询将返回给定泛型类型的元素。 /// /// 查询所返回对象的类型 /// SQL 查询字符串 /// 要应用于 SQL 查询字符串的参数 /// public IQueryable SqlQuery(string sql, params object[] parameters) { return Repository.GetDbContext().Database.SqlQuery(sql, parameters).AsQueryable(); } public async Task> SqlQueryAsync(string sql, params object[] parameters) { var result = Repository.GetDbContext().Database.SqlQuery(sql, parameters).AsQueryable(); return await Task.FromResult(result); } } }