EF Core 3.1 执行sql语句的几种方法

作者:outlela  来源:本站原创   发布时间:2020-8-17 14:16:58

命名空间:Microsoft.EntityFrameworkCore

引用dll:Microsoft.EntityFrameworkCore.Relational.dll

包:Microsoft.EntityFrameworkCore.Relational v3.1.0


对数据库执行给定的 SQL 并返回受影响的行数。

请注意,此方法不会启动事务。要将此方法用于事务,请先调用Begin 事务(数据库管理器、隔离级别)或Use 事务(数据库实例、DbTransaction)。

请注意,此方法未使用当前执行策略,因为 SQL 可能不是幂等的,并且不在事务中运行。执行策略可以显式使用,如果 SQL 不是幂等,请确保也使用事务。

与任何接受 SQL 的 API 一样,参数化任何用户输入以防止 SQL 注入攻击非常重要。您可以在 SQL 查询字符串中包括参数位持有人,然后将参数值作为附加参数提供。您提供的任何参数值将自动转换为DbParameter。

1.ExecuteSqlInterpolated

context.Database.ExecuteSqlInterpolated($"SELECT * FROM [dbo].[SearchBlogs]({userSuppliedSearchTerm})")


2.ExecuteSqlRaw

context.Database.ExecuteSqlRaw("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm)

3.ExecuteSqlCommand(已弃用)

context.Database.ExecuteSqlCommand($"SELECT * FROM [dbo].[SearchBlogs]({userSuppliedSearchTerm})")

详细说明请参照官网教程:https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.relationaldatabasefacadeextensions.executesqlinterpolated?view=efcore-3.1

*本文最后修改于:2020-8-17 14:31:22
本文标签: Microsoft EntityFrameworkCore EF Core 3.1 执行 sql 语句
本文由本站原创发布, 本文链接地址:https://outlela.com/Code/88.html
转载或引用请保留地址并注明出处:outlela.com