EFCore 执行原生SQL语句

1、执行非查询语句:

  mydbContext.Database.ExecuteSqlInterpolatedAsync($"");

ExecuteSqlInterpolatedAsync这个方法:

public static int ExecuteSqlInterpolatedAsync(this DatabaseFacade databaseFacade, FormattableString sql)
{
return databaseFacade.ExecuteSqlRaw(sql.Format, sql.GetArguments());
}

他的参数是:FormattableString  ,可以使用参数化执行,不会SQL注入。

mydbContext.Database.ExecuteSqlRawAsync 执行原生的SQL语句,可能会有注入风险,慎用。

 

2、查询结果可以对应一个实体的查询

IQueryable<Book> books = mydbContext.Books.FromSqlInterpolated($"");

会将查询结果对应到Books上。

 

 

 复杂的SQL语句查询 还是可以用Dapper。

 

Part3-32:EF Core执行任意原生SQL查询语句_哔哩哔哩_bilibili

posted @ 2022-07-26 22:09  百年俊少  阅读(1317)  评论(0编辑  收藏  举报