У меня есть следующий SQL:LINQ to SQL: Как написать «Как» выбрать?
select * from transaction_log where stoptime like '%2008%'
Как я пишу это в LINQ синтаксиса SQL?
У меня есть следующий SQL:LINQ to SQL: Как написать «Как» выбрать?
select * from transaction_log where stoptime like '%2008%'
Как я пишу это в LINQ синтаксиса 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 namespace
from x in context.Table where x.Contains("2008") select x
Я не уверен, что это приводит к правильному Sql. Вам нужно будет просмотреть его. – Will 2008-09-18 12:22:16
Если тип данных останова - строка, вы можете использовать функцию .Contains(), а также .StartsWith() и .EndsWith().
Если вы используете метод contains to method, вы делаете LIKE '% somestring%'. Если вы используете метод startswith, то он будет таким же, как «somestring%». Наконец, endswith совпадает с использованием «% somestring».
Подводя итог, содержит найденный образец в строке, но startswith и endswith помогут найти совпадения в начале и в конце слова.
Действительно интересно то, что .NET создает запросы типа «Выберите * из таблицы, где такое имя, как«% test% », когда вы используете« из x в контексте.Таблица, где x.Contains («test») select x ", что весьма впечатляет
Спасибо, что ответили хорошо.
Это, по сути, тип DateTime; Я должен был ввести «стоп-время» в качестве:
var query = from p in dbTransSummary.Transaction_Logs
where ((DateTime) p.StopTime).Year == dtRollUpDate.Year
select
Незначительный пункт. Он отлично работает!
прохладный. Я ухожу. Мне приходилось прибегать к типу «stoptime» в DateTime, чтобы получить доступ к свойству Year, но не имеет большого значения. – 2008-09-18 17:17:29