我正在使用C#和WPF作爲前端的EF。我需要提供一個UI,以便用戶可以創建自己的查詢並獲得結果。用戶界面將列出表格和列表以供選擇(不滿意用戶界面,需要改進,但在我的腦海中需要新的刻度)。如何在EF上運行SQL查詢?
所以我的問題是如何創建,合併(現有查詢)和執行查詢。
還有sql類實體客戶端提供程序,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(可空=真,默認值=)] 」。 要提取元素的集合 的屬性,請使用子查詢在集合上迭代 。近簡單 標識,第1行,列45
任何想法,爲什麼它是很好的一個簡單的查詢,但它不是爲複雜的查詢工作?
由於事先 ñ
您好托馬斯,我在看ExecuteStoreQuery和E SQL。 First ExecuteStoreQuery對我來說看起來不錯。它完美的與簡單的查詢。但是,當我通過三個表聯合傳遞複雜的查詢。它因錯誤而中斷,如數據讀取器與指定的'Emf.PrjDevCable'不兼容。類型成員'PrjDevID'在數據讀取器中沒有相應的列,名稱相同。 – 2010-10-19 18:11:46
它不適用於匿名類型,僅適用於命名類型(因爲您不能將匿名類型指定爲泛型類型參數)。查詢需要返回與您的模型相同的列名稱 – 2010-10-19 22:04:54
謝謝。我解決了問題來到這裏回答我看到你的帖子。我做了同樣的事情。我正在使用Select Name,Type From Table Joins .....現在我使用Select * From Table Join ....在一個簡短的說明中,L2S支持兩者。但EMF只適用於Select * ....謝謝,N – 2010-10-19 22:59:16