什麼是SQL子句,如WHERE UserName LIKE 'fr_d'
的linq等效項?LINQ到SQL LIKE子句的等效數據集
我用內存,而不是一個SQL數據庫的數據集工作,所以我不認爲我可以使用類似where SqlMethods.Like(p.UserName, "Fr_d")
(不,我的VS2008的安裝承認SqlMethods甚至System.Data .Linq.SqlClient 存在的那一刻,但多數民衆贊成一個完全不同的問題)
什麼是SQL子句,如WHERE UserName LIKE 'fr_d'
的linq等效項?LINQ到SQL LIKE子句的等效數據集
我用內存,而不是一個SQL數據庫的數據集工作,所以我不認爲我可以使用類似where SqlMethods.Like(p.UserName, "Fr_d")
(不,我的VS2008的安裝承認SqlMethods甚至System.Data .Linq.SqlClient 存在的那一刻,但多數民衆贊成一個完全不同的問題)
就像這樣:!
table.Where(row => row.StringColumn.StartsWith("prefix"))
(你也可以打電話給Contains
或EndsWith
)
編輯:在你的情況,你想
table.Where(p => p.UserName.StartsWith("Fr") && p.UserName.EndsWith("d") && p.UserName.Length == 4)
或者,你也可以把一個正則表達式的Where
子句中。
如果這樣做,請確保在Where
調用之外創建RegEx
對象,以便它不會針對每一行進行解析。
請注意,他正在使用一個特殊字符和他的'LIKE'(假設他打算使用'fr_d'而不是fr_d) – 2010-09-14 19:26:54
@Abe:不,我沒有注意到。 – SLaks 2010-09-14 19:28:00
你的第二個例子將選擇UserName爲「Fraaaaad」的記錄,這不是相應的SQL查詢將執行的操作。 – 2010-09-14 19:37:38
我相信這是你真正想要的。它將允許神父{任意一個字符} d:
table.Where(p => p.UserName.StartsWith("Fr") && p.UserName.EndsWith("d") && p.UserName.Length == 4)
不幸的是我無法找到任何東西,做類似於SQL的像LINQ到數據集條款東西...
UPDATE:LINQ vs. DataTable.Select - How can I get the same results?
他們建議使用我不熟悉的i4o,但它可能是值得研究的(該問題的提問者接受i4o作爲答案)。
這取決於名爲fr_d的列的內容是什麼。 – 2010-09-14 19:23:05
你的意思是把'LIKE'fr_d''而不是''像fr_d'? – 2010-09-14 19:28:47
對不起。以爲我有。 – FixerMark 2010-09-14 19:44:57