LINQ to SQL 將字串實例方法轉譯為 LIKE:
| 方法 | 模式 | SQL 參數 |
|---|---|---|
Contains("ROUT") | 包含子字串 | '%ROUT%' |
EndsWith("ISSA") | 以指定字串結尾 | '%ISSA' |
StartsWith("ARO") | 以指定字串開頭 | 'ARO%' |
var q = (from c in db.Customers
where c.CustomerID.Contains("ROUT")
select c).ToList();
WHERE [t0].[CustomerID] LIKE @p0 -- @p0 = '%ROUT%'
var q = (from c in db.Customers
where c.CustomerID.EndsWith("ISSA")
select c).ToList();
WHERE [t0].[CustomerID] LIKE @p0 -- @p0 = '%ISSA'
var q = (from c in db.Customers
where c.CustomerID.StartsWith("ARO")
select c).ToList();
WHERE [t0].[CustomerID] LIKE @p0 -- @p0 = 'ARO%'
當需求超出三大方法(如中間通配、多段通配)時,改用 SqlMethods.Like:
var q = (from c in db.Customers
where SqlMethods.Like(c.CustomerID, "%ROUT%")
select c).ToList();
var q = (from c in db.Customers
where SqlMethods.Like(c.CustomerID, "%ISSA")
select c).ToList();
此時由開發者自行撰寫完整 LIKE 模式字串,彈性最大。