RelationalDatabaseFacadeExtensions.SqlQueryRaw<TResult> 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
基于原始 SQL 查询创建 LINQ 查询,该查询返回数据库提供程序本机支持的标量类型的结果集。
public static System.Linq.IQueryable<TResult> SqlQueryRaw<TResult> (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object[] parameters);
static member SqlQueryRaw : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * obj[] -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function SqlQueryRaw(Of TResult) (databaseFacade As DatabaseFacade, sql As String, ParamArray parameters As Object()) As IQueryable(Of TResult)
类型参数
- TResult
参数
- databaseFacade
- DatabaseFacade
DatabaseFacade上下文的 。
- sql
- String
原始 SQL 查询。
- parameters
- Object[]
要分配给参数的值。
返回
表示 IQueryable<T> 原始 SQL 查询的 。
注解
若要将此方法用于数据库提供程序本身不支持的返回类型,请使用 DefaultTypeMapping<TScalar>(Action<TypeMappingConfigurationBuilder<TScalar>>) 方法。
返回的 IQueryable<T> 可以组合使用 LINQ 来生成更复杂的查询。
请注意,此方法不会启动事务。 若要将此方法用于事务,请先调用 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction。
与任何接受 SQL 的 API 一样,必须参数化任何用户输入,以防止 SQL 注入攻击。 可以在 SQL 查询字符串中包含参数占位符,然后将参数值作为其他参数提供。 提供的任何参数值将自动转换为 DbParameter。
但是, 切勿 将串联或内插字符串 ($""
) 与未经验证的用户提供的值传递到此方法中。 这样做可能会使应用程序受到 SQL 注入攻击。 若要使用内插字符串语法,请考虑使用 SqlQuery<TResult>(DatabaseFacade, FormattableString) 创建参数。
有关详细信息和示例 ,请参阅使用 EF Core 执行原始 SQL 命令 。