Share via


Database.SqlQuery 方法

包含受保護的成員
包含繼承的成員

[此頁面專屬於 Entity Framework 第 6 版。最新版本可從 'Entity Framework' NuGet 套件取得。如需 Entity Framework 的詳細資訊,請參閱 msdn.com/data/ef。]

建立原始 SQL 查詢,此查詢將會傳回給定類型的項目。

這個成員是多載的。如需這個成員的完整資訊,包含語法、使用方式和範例,請按一下多載清單中的名稱。

多載清單

  名稱 描述
公用方法 SqlQuery<TElement>(String, Object[]) 建立原始 SQL 查詢,此查詢將會傳回給定泛型類型的項目。此類型可以是擁有屬性的任何類型 (這些屬性符合從查詢傳回的資料行名稱) 或者可以是簡單基本類型。此類型不必是實體類型。此內容絕對不會追蹤此查詢的結果,即使傳回之物件的類型為實體類型亦然。使用 SqlQuery(String, Object[]) 方法可傳回此內容所追蹤的實體。如同所有接受 SQL 的應用程式開發介面,任何使用者輸入都務必進行參數化以防範 SQL 插入式攻擊。您可在 SQL 查詢字串中加入參數預留位置,然後再以其他引數提供參數值。您所提供的任何參數值都將自動轉換為 DbParameter。context.Database.SqlQuery&lt;Post&gt;("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);。或者,您也可以建構 DbParameter,再將其提供給 SqlQuery。如此您便能在 SQL 查詢字串中使用具名參數。context.Database.SqlQuery&lt;Post&gt;("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
公用方法 SqlQuery(Type, String, Object[]) 建立原始 SQL 查詢,此查詢將會傳回給定類型的項目。此類型可以是擁有屬性的任何類型 (這些屬性符合從查詢傳回的資料行名稱) 或者可以是簡單基本類型。此類型不必是實體類型。此內容絕對不會追蹤此查詢的結果,即使傳回之物件的類型為實體類型亦然。使用 SqlQuery(String, Object[]) 方法可傳回此內容所追蹤的實體。如同所有接受 SQL 的應用程式開發介面,任何使用者輸入都務必進行參數化以防範 SQL 插入式攻擊。您可在 SQL 查詢字串中加入參數預留位置,然後再以其他引數提供參數值。您所提供的任何參數值都將自動轉換為 DbParameter。context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor)。或者,您也可以建構 DbParameter 再將其提供給 SqlQuery。如此您便能在 SQL 查詢字串中使用具名參數。context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

靠上

請參閱

參考

Database 類別

System.Data.Entity 命名空間