2013-06-28 38 views
0

考慮下面的SQL語句:如何在LINQ中將此查詢作爲where子句寫入實體擴展方法?

Select * From Customers Where ID LIKE ('%160%') 

如果ID是一個i​​nt場,我怎麼可以使用LINQ到實體擴展方法來做到這一點?

字符串字段,我可以做這樣的事情......

filterExpression = "ID.Contains(\"160\")"; 
IQueryable<Customer> c = context.Customers.Where(filterExpression); 

當我嘗試,我得到的錯誤:

No applicable method 'Contains' exists in type 'Int32' 

我一直在尋找上一個小時如何讓這個工作沒有運氣。

編輯:修改使代碼更具可讀性。

回答

1

不能測試atm,但我會試試這個;

var myExpression = x => SqlFunctions.StringConvert((double)x.ID).Contains("160"); 
IQueryable<Customer> c = context.Customers.Where(myExpression); 
+0

給我的錯誤:「SqlFunctions」型不存在任何屬性或字段「客戶」 – Scottie

+0

@Scottie嗯,似乎它看起來'System.Data.Objects.SqlClient.SqlFunctions'在錯誤的地方。你可以試試編輯嗎? –

+1

因爲我最終做了一件非常類似於你在這裏使用StringConvert函數發佈的東西,所以我會將你的標記標記爲正確的答案。謝謝! – Scottie

相關問題