簡體   English   中英

如何在EF上運行SQL查詢?

[英]How to run SQL Queries on EF?

我正在使用C#和WPF作為前端的EF。 我需要提供一個UI,以便用戶可以創建自己的查詢並獲得結果。 用戶界面將是表格列表和要從中選擇的列表(對UI不滿意。需要改進但我腦子里有新的標記)。

所以我的問題是如何創建,合並(現有查詢)和執行查詢。

有sql類Entity Client提供程序,objectquery類。 我使用了ObjectQuery

string querystring = @"SELECT PrjDev FROM prjscenario"; 
ObjectQuery<PrjDev> prjdevquery = new ObjectQuery<PrjDev>(querystring, ptxobjcontext);
string cpmmandtext = prjdevquery.CommandText;
int prjdevnum =  prjdevquery.Count();

這是工作。 但是當我運行一些復雜的查詢時。 它不起作用。 示例代碼:

string querystring = @"SELECT PrjDev FROM prjscenario WHERE PrjDev.PrjDevType = 10";

錯誤:

'PrjDevType'不是'Transient.collection [Skm.Ptx.Data.Emf.PrjDev(Nullable = True,DefaultValue =)]'的成員。 要提取集合元素的屬性,請使用子查詢迭代集合。 近簡單標識符,第1行,第45列。

任何想法,為什么它對一個簡單的查詢有好處,但它不適用於復雜的查詢?

先謝謝你,N

作為參數傳遞給ObjectQuery<T>構造函數的查詢不是SQL查詢,而是ESQL(實體SQL)查詢。 雖然語法相似,但它們是非常不同的語言。 您可以在此頁面上了解有關ESQL的更多信息。

如果要對ObjectContext的底層數據庫執行真正的SQL,可以使用ObjectContext.ExecuteStoreQuery方法,或者只是通過ObjectContext.Connection屬性檢索連接,並從那里編寫“經典”ADO.NET代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM