Aspnetboilerplate:如何执行原始 sql 查询

Aspnetboilerplate: How to execute raw sql query



如何在 asp.net core aspnetboilerplate 5.6.0,
中执行原始 sql 查询 似乎 entity framework 项目中引用了代码 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);
    }
}

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

你可以这样调用

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