2017-03-17 63 views
0

我有Linq中的查詢SQL通配符_ Linq中

select Max(CompanyId) from EmployeeCompany where CompanyId like '01-001' +'-___' 

我如何能實現 '_____' 什麼想法? 我已經companiyId像01-001-111,01-001-112

+0

你正在使用什麼類型的LINQ?它是Entity Framework,還是你正在查詢內存中的對象? –

+0

我正在使用LINQ實體。 –

回答

2

實體框架,你可以使用SqlFunctions.PatIndex

db.EmployeeCompany 
    .Where(c => SqlFunctions.PatIndex("01-001-___", c.CompanyId) > 0) 
    .Max(c => CompanyId) 

注:此功能不會產生與LIKE操作SQL查詢。相反,它會使用PATINDEX函數生成查詢(這似乎比LIKE運算符更快)。

+0

*這似乎比LIKE運算符*非常有趣...我不知道... – xanatos

+0

我收到此錯誤「LINQ to Entities無法識別方法PatIndex方法,並且此方法無法轉換爲存儲表達式「 –

+0

@MuzammilAnwar是否爲'System.Data.Entity.SqlServer'命名空間添加了使用?你的代碼和asnwer中的代碼完全一樣嗎? –