DbSet.SqlQuery 方法
[此頁面專屬於 Entity Framework 第 6 版。最新版本可從 'Entity Framework' NuGet 套件取得。如需 Entity Framework 的詳細資訊,請參閱 msdn.com/data/ef。]
建立原始 SQL 查詢,此查詢將會傳回此集合中的實體。 根據預設,傳回的實體會由內容所追蹤,這可藉由在傳回的 DbRawSqlQuery 上呼叫 AsNoTracking 來變更。 請注意,傳回的實體一定會具有此集合的類型,而且絕對不會具有衍生類型。 如果查詢的資料表可能包含其他實體類型的資料,則必須適當地撰寫 SQL 查詢,以確保只會傳回正確類型的實體。 如同所有接受 SQL 的應用程式開發介面,任何使用者輸入都務必進行參數化以防範 SQL 插入式攻擊。 您可在 SQL 查詢字串中加入參數預留位置,然後再以其他引數提供參數值。 您所提供的任何參數值都將自動轉換為 DbParameter。 context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor)。或者,您也可以建構 DbParameter 再將其提供給 SqlQuery。 如此您便能在 SQL 查詢字串中使用具名參數。 context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
命名空間: System.Data.Entity
組件: EntityFramework (在 EntityFramework.dll 中)
語法
'宣告
Public Overridable Function SqlQuery ( _
sql As String, _
ParamArray parameters As Object() _
) As DbSqlQuery
'用途
Dim instance As DbSet
Dim sql As String
Dim parameters As Object()
Dim returnValue As DbSqlQuery
returnValue = instance.SqlQuery(sql, parameters)
public virtual DbSqlQuery SqlQuery(
string sql,
params Object[] parameters
)
public:
virtual DbSqlQuery^ SqlQuery(
String^ sql,
... array<Object^>^ parameters
)
abstract SqlQuery :
sql:string *
parameters:Object[] -> DbSqlQuery
override SqlQuery :
sql:string *
parameters:Object[] -> DbSqlQuery
public function SqlQuery(
sql : String,
... parameters : Object[]
) : DbSqlQuery
參數
- sql
類型:System.String
SQL 查詢字串。
- parameters
類型:System.Object[]
要套用至 SQL 查詢字串的參數。 如果使用了輸出參數,在完全讀取結果之前,這些參數的值將無法使用。 這是由於 DbDataReader 的基礎行為所造成,請參閱 https://go.microsoft.com/fwlink/?LinkID=398589 以取得詳細資料。
傳回值
類型:System.Data.Entity.Infrastructure.DbSqlQuery
將在列舉時執行查詢的 DbSqlQuery 物件。