語言

DbSet.SqlQuery(String, Object[]) 方法

定義

建立一個原始 SQL 查詢,回傳此集合中的實體。 預設情況下,回傳的實體會由上下文追蹤;此設定可透過呼叫 AsNoTracking( DbRawSqlQuery 返回者)來更改。 請注意,回傳的實體總是該集合的型別,從不屬於導出型別。 如果查詢的表格可能包含其他實體類型的資料,則必須適當撰寫 SQL 查詢,以確保只回傳正確類型的實體。

和任何接受 SQL 的 API 一樣,必須對使用者輸入進行參數化,以防止 SQL 注入攻擊。 你可以在 SQL 查詢字串中加入參數佔位符,然後以參數值作為額外參數。 你提供的任何參數值都會自動轉換成 DbParameter。 背景說明。Set(typeof(Blog))。SqlQuery(“SELECT * FROM dbo.文章 作者 = @p0“, userSuppliedAuthor);或者,你也可以建構一個 DbParameter 並提供給 SqlQuery。 這讓你可以在 SQL 查詢字串中使用命名參數。 背景說明。Set(typeof(Blog))。SqlQuery(“SELECT * FROM dbo.文章 WHERE Author = @author“, new SqlParameter(”@author“, userSuppliedAuthor));

public virtual System.Data.Entity.Infrastructure.DbSqlQuery SqlQuery(string sql, params object[] parameters);
abstract member SqlQuery : string * obj[] -> System.Data.Entity.Infrastructure.DbSqlQuery
override this.SqlQuery : string * obj[] -> System.Data.Entity.Infrastructure.DbSqlQuery
Public Overridable Function SqlQuery (sql As String, ParamArray parameters As Object()) As DbSqlQuery

參數

sql
String

SQL 查詢字串。

parameters
Object[]

這些參數要套用到 SQL 查詢字串。 若使用輸出參數,其值在結果完整讀取後無法取得。 這是因為 DbDataReader 的底層行為,詳情請見 http://go.microsoft.com/fwlink/?LinkID=398589 。

傳回

一個 DbSqlQuery 會在查詢被列舉時執行的物件。

適用於