2012-12-05 60 views
0

我使用EF5爲的ObjectQuery,EF5的ObjectQuery 「喜歡」

var query = this.ObjectContext.CreateQuery<Role>("SELECT VALUE n FROM Role as n"); 
query = query.Where("it.Name like '%@name%'", new ObjectParameter("name", name)); 

但它不工作,它總是返回所有結果。 任何想法? Thx很多!

回答

2

您想使用.Contains。當在字符串列上使用時,轉換爲Sql LIKE

+0

Thx,但在objectquery中沒有'Contains'命令,你能給我一個代碼示例嗎? – iNc0ming

+0

這是Linq to Entities。在E-Sql中,您可以像使用msdn doc一樣使用http://msdn.microsoft.com/zh-CN/library/bb399359.aspx。檢查爲你的查詢創建了什麼sql查詢(你可能會使用.ToTraceString())。你也沒有告訴參數的值是什麼 - 例如,如果它是空字符串,你可能會選擇所有的東西。順便說一句。你爲什麼要使用E-SQL? – Pawel

+0

根據ef的性能考慮h​​ttp://msdn.microsoft.com/en-us/data/hh949853.aspx,我認爲ESQL將比Linq有更好的性能。 – iNc0ming