首页 > 解决方案 > Aspnetboilerplate:如何执行原始 sql 查询

问题描述



如何在asp.net core aspnetboilerplate 5.6.0中执行原始sql查询,
项目中似乎引用了实体框架代码3.1.4

我的代码如下

public interface ISqlExecuter
{
    int Execute(string sql, params object[] parameters);
}

public class SqlExecuter : ISqlExecuter, ITransientDependency
{
    private readonly IDbContextProvider<InsProDbContext> _dbContextProvider;

    public SqlExecuter(IDbContextProvider<InsProDbContext> dbContextProvider)
    {
        _dbContextProvider = dbContextProvider;
    }

    public int Execute(string sql, params object[] parameters)
    {
        _dbContextProvider.GetDbContext().Database//<= Here I dont see any function to execute SQL query
        //return 0;
        //return _dbContextProvider.GetDbContext().Database.ExecuteSqlCommand(sql, parameters);
    }
}

标签: asp.net-coreaspnetboilerplate

解决方案


他们提供了扩展方法ExecuteSqlRaw,你可以调用这个方法来运行查询。

你可以这样打电话。

dbContextProvider.GetDbContext().Database.ExecuteSqlRaw();
dbContextProvider.GetDbContext().Database.ExecuteSqlRawAsync();

推荐阅读