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