Методы System.DateTime
Следующие методы, операторы и свойства с поддержкой LINQ to SQL доступны для использования в запросах LINQ to SQL. Если метод, оператор или свойство не поддерживаются, LINQ to SQL не может преобразовать этот элемент для выполнения в SQL Server. Эти элементы можно использовать в коде, но их значения необходимо вычислить перед преобразованием запроса в Transact-SQL или после получения результатов из базы данных.
Поддерживаемые элементы System.DateTime
После сопоставления в модели объектов или во внешнем файле сопоставления LINQ to SQL позволяет использовать следующие элементы System.DateTime в запросах LINQ to SQL.
Поддерживаемые методы DateTime | Поддерживаемые операторы DateTime | Поддерживаемые свойства DateTime |
---|---|---|
Add | Addition | Date |
AddDays | Equality | Day |
AddHours | GreaterThan | DayOfWeek |
AddMilliseconds | GreaterThanOrEqual | DayOfYear |
AddMinutes | Inequality | Hour |
AddMonths | LessThan | Millisecond |
AddSeconds | LessThanOrEqual | Minute |
AddTicks | Subtraction | Month |
AddYears | Now | |
Compare | Second | |
CompareTo(DateTime) | TimeOfDay | |
Equals(DateTime) | Today | |
Year |
Элементы, не поддерживаемые в LINQ to SQL
Следующие члены не поддерживаются в запросах LINQ to SQL:
- IsDaylightSavingTime
- IsLeapYear
- DaysInMonth
- ToBinary
- ToFileTime
- ToFileTimeUtc
- ToLongDateString
- ToLongTimeString
- ToOADate
- ToShortDateString
- ToShortTimeString
- ToUniversalTime
- FromBinary
- UtcNow
- FromFileTime
- FromFileTimeUtc
- FromOADate
- GetDateTimeFormats
Пример преобразования методов
Все методы, поддерживаемые LINQ to SQL, преобразуются в Transact-SQL перед отправкой в SQL Server. Например, рассмотрим следующий шаблон.
(dateTime1 – dateTime2).{Days, Hours, Milliseconds, Minutes, Months, Seconds, Years}
Когда шаблон распознается, он преобразуется в прямой вызов функции SQL Server DATEDIFF
следующим образом:
DATEDIFF({DatePart}, @dateTime1, @dateTime2)
Методы даты и времени класса SQLMethods
Помимо методов, предлагаемых структурой DateTime , LINQ to SQL предлагает следующие методы из System.Data.Linq.SqlClient.SqlMethods класса для работы с датой и временем:
- DateDiffDay
- DateDiffMillisecond
- DateDiffNanosecond
- DateDiffHour
- DateDiffMinute
- DateDiffSecond
- DateDiffMicrosecond
- DateDiffMonth
- DateDiffYear