我有以下SQL:LINQ to SQL:如何寫一個'喜歡'選擇?
select * from transaction_log where stoptime like '%2008%'
我怎樣寫這在LINQ to SQL語法?
我有以下SQL:LINQ to SQL:如何寫一個'喜歡'選擇?
select * from transaction_log where stoptime like '%2008%'
我怎樣寫這在LINQ to SQL語法?
如果你想使用文字的方法,它是這樣的:
var query = from l in transaction_log
where SqlMethods.Like(l.stoptime, "%2008%")
select l;
另一種選擇是:
var query = from l in transaction_log
where l.stoptime.Contains("2008")
select l;
如果它是一個DateTime:
var query = from l in transaction_log
where l.stoptime.Year = 2008
select l;
這種方法是在System.Data.Linq.SqlClient命名空間
from x in context.Table where x.Contains("2008") select x
我不確定這是否會產生正確的Sql。你必須將其配置文件才能看到。 – Will 2008-09-18 12:22:16
如果停止時間數據類型爲字符串,就可以使用。載有()函數,也.StartsWith()和.EndsWith()。
如果你使用contains方法,那麼你正在做一個LIKE'%somestring%'。如果您使用startswith方法,那麼它與'somestring%'相同。最後,endswith與使用'%somestring'相同。
總括而言,包含將在字符串中找到任何模式,但startswith和endswith將幫助您在單詞的開始和結尾找到匹配項。
真正有趣的一點是,當您使用「from x from context.Table」,其中x.Contains(「test」)選擇時,.NET會創建類似於「Select * from table where''%test%'' x「這是相當令人印象深刻
謝謝 - 很好的答案。
這實際上是一個DateTime類型;我不得不強調類似於「stoptime」:
var query = from p in dbTransSummary.Transaction_Logs
where ((DateTime) p.StopTime).Year == dtRollUpDate.Year
select
小問題。它很棒!
很酷。我正在跑步。爲了訪問年份屬性,我確實需要對DateTime進行「stoptime」類型的轉換,但沒有什麼大不了的。 – 2008-09-18 17:17:29