LINQ to SQL: Как написать «Нравится» выбрать? - PullRequest
20 голосов
/ 18 сентября 2008

У меня есть следующий SQL:

select * from transaction_log where stoptime like '%2008%'

Как мне написать это в синтаксисе LINQ to SQL?

Ответы [ 6 ]

30 голосов
/ 18 сентября 2008

Если вы хотите использовать буквальный метод, это выглядит так:

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 пространстве имен

1 голос
/ 18 сентября 2008

Если тип данных stoptime является строковым, вы можете использовать функцию .Contains (), а также .StartsWith () и .EndsWith ().

1 голос
/ 18 сентября 2008
from x in context.Table where x.Contains("2008") select x
0 голосов
/ 18 сентября 2008

Спасибо - хорошие ответы.

На самом деле это тип DateTime; Я должен был распечатать "stoptime" как:

var query = from p in dbTransSummary.Transaction_Logs
    where ( (DateTime) p.StopTime).Year == dtRollUpDate.Year
    select

Незначительная точка. Отлично работает!

0 голосов
/ 18 сентября 2008

Действительно интересным моментом является то, что .NET создает запросы, такие как «Выбрать * из таблицы, где имя похоже на«% test% »,« когда вы используете »из x в контексте. Таблица, где x.Contains (« test »), выберите x "Что весьма впечатляет

0 голосов
/ 18 сентября 2008

Если вы используете метод contains to, вы делаете LIKE "% somestring%". Если вы используете метод startwith, то он совпадает с 'somestring%'. И, наконец, заканчивается с использованием '% somestring'.

Подводя итог, определит, что содержит любой шаблон в строке, но начинается с и заканчивается, поможет найти совпадения в начале и конце слова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...