Подтвердить что ты не робот

LINQ to SQL: как написать "Как" выбрать?

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

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

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

4b9b3361

Ответ 1

Если вы хотите использовать литерал-метод, он выглядит так:

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

Ответ 2

from x in context.Table where x.Contains("2008") select x

Ответ 3

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

Ответ 4

Если вы используете метод contains to method, вы делаете LIKE '% somestring%'. Если вы используете метод startswith, то он будет таким же, как "somestring%". Наконец, endswith совпадает с использованием "% somestring".

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

Ответ 5

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

Ответ 6

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

Это, по сути, тип DateTime; Мне приходилось прибегать к типу "stoptime" как:

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

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