RelationalQueryableExtensions.FromSql 方法

定義

多載

FromSql<TEntity>(DbSet<TEntity>, FormattableString)

根據代表 SQL 查詢的插補字串建立 LINQ 查詢。

FromSql<TEntity>(IQueryable<TEntity>, FormattableString)
已淘汰.

根據代表 SQL 查詢的插補字串建立 LINQ 查詢。

如果資料庫提供者支援在提供的 SQL 上撰寫,您可以使用 LINQ 運算子在原始 SQL 查詢之上撰寫 - context.Blogs.FromSql("SELECT * FROM dbo.Blogs").OrderBy(b => b.Name)

如同接受 SQL 的任何 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含插補參數預留位置。 您提供的任何插補參數值都會自動轉換成 DbParameter - context.Blogs.FromSql($"SELECT * FROM [dbo].[SearchBlogs]({userSuppliedSearchTerm})")

FromSql<TEntity>(IQueryable<TEntity>, RawSqlString, Object[])
已淘汰.

根據原始 SQL 查詢建立 LINQ 查詢。

如果資料庫提供者支援在提供的 SQL 上撰寫,您可以使用 LINQ 運算子在原始 SQL 查詢之上撰寫 - context.Blogs.FromSql("SELECT * FROM dbo.Blogs").OrderBy(b => b.Name)

如同接受 SQL 的任何 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter - context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm)

此多載也會接受 DbParameter 實例作為參數值。 這可讓您在 SQL 查詢字串中使用具名參數 - context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({@searchTerm})", new SqlParameter("@searchTerm", userSuppliedSearchTerm))

FromSql<TEntity>(IQueryable<TEntity>, String, Object[])

根據原始 SQL 查詢建立 LINQ 查詢。

如果資料庫提供者支援在提供的 SQL 上撰寫,您可以使用 LINQ 運算子在原始 SQL 查詢之上撰寫 - context.Blogs.FromSql("SELECT * FROM dbo.Blogs").OrderBy(b => b.Name)

如同接受 SQL 的任何 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter - context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm)

您也可以建構 DbParameter,並將其提供給 做為參數值。 這可讓您在 SQL 查詢字串中使用具名參數 - context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({@searchTerm})", new SqlParameter("@searchTerm", userSuppliedSearchTerm))

FromSql<TEntity>(DbSet<TEntity>, FormattableString)

根據代表 SQL 查詢的插補字串建立 LINQ 查詢。

public static System.Linq.IQueryable<TEntity> FromSql<TEntity> (this Microsoft.EntityFrameworkCore.DbSet<TEntity> source, FormattableString sql) where TEntity : class;
static member FromSql : Microsoft.EntityFrameworkCore.DbSet<'Entity (requires 'Entity : null)> * FormattableString -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function FromSql(Of TEntity As Class) (source As DbSet(Of TEntity), sql As FormattableString) As IQueryable(Of TEntity)

類型參數

TEntity

source 項目的類型。

參數

source
DbSet<TEntity>

IQueryable<T> 做為插入字串 SQL 查詢的基底, (通常是 DbSet<TEntity>) 。

sql
FormattableString

內插字串,表示具有參數的 SQL 查詢。

傳回

IQueryable<TEntity>

IQueryable<T> 表示插入字串 SQL 查詢。

備註

如果資料庫提供者支援在提供的 SQL 上撰寫,您可以使用 LINQ 運算子在原始 SQL 查詢之上撰寫。

如同接受 SQL 的任何 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含插補參數預留位置。 您提供的任何插補參數值都會自動轉換成 DbParameter

如需詳細資訊和範例 ,請參閱使用 EF Core 執行原始 SQL 命令

適用於

FromSql<TEntity>(IQueryable<TEntity>, FormattableString)

警告

For returning objects from SQL queries using plain strings, use FromSqlRaw instead. For returning objects from SQL queries using interpolated string syntax to create parameters, use FromSqlInterpolated instead. Call either new method directly on the DbSet at the root of the query.

根據代表 SQL 查詢的插補字串建立 LINQ 查詢。

如果資料庫提供者支援在提供的 SQL 上撰寫,您可以使用 LINQ 運算子在原始 SQL 查詢之上撰寫 - context.Blogs.FromSql("SELECT * FROM dbo.Blogs").OrderBy(b => b.Name)

如同接受 SQL 的任何 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含插補參數預留位置。 您提供的任何插補參數值都會自動轉換成 DbParameter - context.Blogs.FromSql($"SELECT * FROM [dbo].[SearchBlogs]({userSuppliedSearchTerm})")

public static System.Linq.IQueryable<TEntity> FromSql<TEntity> (this System.Linq.IQueryable<TEntity> source, FormattableString sql) where TEntity : class;
[System.Obsolete("For returning objects from SQL queries using plain strings, use FromSqlRaw instead. For returning objects from SQL queries using interpolated string syntax to create parameters, use FromSqlInterpolated instead. Call either new method directly on the DbSet at the root of the query.", true)]
public static System.Linq.IQueryable<TEntity> FromSql<TEntity> (this System.Linq.IQueryable<TEntity> source, FormattableString sql) where TEntity : class;
static member FromSql : System.Linq.IQueryable<'Entity (requires 'Entity : null)> * FormattableString -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
[<System.Obsolete("For returning objects from SQL queries using plain strings, use FromSqlRaw instead. For returning objects from SQL queries using interpolated string syntax to create parameters, use FromSqlInterpolated instead. Call either new method directly on the DbSet at the root of the query.", true)>]
static member FromSql : System.Linq.IQueryable<'Entity (requires 'Entity : null)> * FormattableString -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function FromSql(Of TEntity As Class) (source As IQueryable(Of TEntity), sql As FormattableString) As IQueryable(Of TEntity)

類型參數

TEntity

source 項目的類型。

參數

source
IQueryable<TEntity>

IQueryable<T> 做為插入字串 SQL 查詢的基底, (通常是 DbSet<TEntity>) 。

sql
FormattableString

表示 SQL 查詢的插補字串。

傳回

IQueryable<TEntity>

IQueryable<T> 表示插入字串 SQL 查詢。

屬性

適用於

FromSql<TEntity>(IQueryable<TEntity>, RawSqlString, Object[])

警告

For returning objects from SQL queries using plain strings, use FromSqlRaw instead. For returning objects from SQL queries using interpolated string syntax to create parameters, use FromSqlInterpolated instead. Call either new method directly on the DbSet at the root of the query.

根據原始 SQL 查詢建立 LINQ 查詢。

如果資料庫提供者支援在提供的 SQL 上撰寫,您可以使用 LINQ 運算子在原始 SQL 查詢之上撰寫 - context.Blogs.FromSql("SELECT * FROM dbo.Blogs").OrderBy(b => b.Name)

如同接受 SQL 的任何 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter - context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm)

此多載也會接受 DbParameter 實例作為參數值。 這可讓您在 SQL 查詢字串中使用具名參數 - context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({@searchTerm})", new SqlParameter("@searchTerm", userSuppliedSearchTerm))

public static System.Linq.IQueryable<TEntity> FromSql<TEntity> (this System.Linq.IQueryable<TEntity> source, Microsoft.EntityFrameworkCore.RawSqlString sql, params object[] parameters) where TEntity : class;
[System.Obsolete("For returning objects from SQL queries using plain strings, use FromSqlRaw instead. For returning objects from SQL queries using interpolated string syntax to create parameters, use FromSqlInterpolated instead. Call either new method directly on the DbSet at the root of the query.", true)]
public static System.Linq.IQueryable<TEntity> FromSql<TEntity> (this System.Linq.IQueryable<TEntity> source, Microsoft.EntityFrameworkCore.RawSqlString sql, params object[] parameters) where TEntity : class;
static member FromSql : System.Linq.IQueryable<'Entity (requires 'Entity : null)> * Microsoft.EntityFrameworkCore.RawSqlString * obj[] -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
[<System.Obsolete("For returning objects from SQL queries using plain strings, use FromSqlRaw instead. For returning objects from SQL queries using interpolated string syntax to create parameters, use FromSqlInterpolated instead. Call either new method directly on the DbSet at the root of the query.", true)>]
static member FromSql : System.Linq.IQueryable<'Entity (requires 'Entity : null)> * Microsoft.EntityFrameworkCore.RawSqlString * obj[] -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function FromSql(Of TEntity As Class) (source As IQueryable(Of TEntity), sql As RawSqlString, ParamArray parameters As Object()) As IQueryable(Of TEntity)

類型參數

TEntity

source 項目的類型。

參數

source
IQueryable<TEntity>

IQueryable<T>,做為原始 SQL 查詢的基底, (通常是 DbSet<TEntity>) 。

sql
RawSqlString

原始 SQL 查詢。 鈮。 字串常值可以在這裡傳遞,因為 RawSqlString 隱含可轉換成字串。

parameters
Object[]

要指派給參數的值。

傳回

IQueryable<TEntity>

IQueryable<T> 表示原始 SQL 查詢。

屬性

適用於

FromSql<TEntity>(IQueryable<TEntity>, String, Object[])

根據原始 SQL 查詢建立 LINQ 查詢。

如果資料庫提供者支援在提供的 SQL 上撰寫,您可以使用 LINQ 運算子在原始 SQL 查詢之上撰寫 - context.Blogs.FromSql("SELECT * FROM dbo.Blogs").OrderBy(b => b.Name)

如同接受 SQL 的任何 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter - context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm)

您也可以建構 DbParameter,並將其提供給 做為參數值。 這可讓您在 SQL 查詢字串中使用具名參數 - context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({@searchTerm})", new SqlParameter("@searchTerm", userSuppliedSearchTerm))

public static System.Linq.IQueryable<TEntity> FromSql<TEntity> (this System.Linq.IQueryable<TEntity> source, string sql, params object[] parameters) where TEntity : class;
static member FromSql : System.Linq.IQueryable<'Entity (requires 'Entity : null)> * string * obj[] -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function FromSql(Of TEntity As Class) (source As IQueryable(Of TEntity), sql As String, ParamArray parameters As Object()) As IQueryable(Of TEntity)

類型參數

TEntity

source 項目的類型。

參數

source
IQueryable<TEntity>

IQueryable<T>,做為原始 SQL 查詢的基底, (通常是 DbSet<TEntity>) 。

sql
String

原始 SQL 查詢。

parameters
Object[]

要指派給參數的值。

傳回

IQueryable<TEntity>

IQueryable<T> 表示原始 SQL 查詢。

適用於