Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
На этой странице показано, какие .NET члены преобразуются в функции SQL при использовании поставщика SQL Server.
Агрегатные функции
| .NET | SQL | Добавлено в |
|---|---|---|
| EF. Functions.StandardDeviationSample(group. Select(x => x.Property)) | STDEV(Свойство) | |
| EF.Functions.StandardDeviationPopulation(group.Select(x => x.Property)) | STDEVP(Property) | |
| EF.Functions.VarianceSample(group.Select(x => x.Property)) | VAR(Property) | |
| EF.Functions.VariancePopulation(group.Select(x => x.Property)) | VARP(Property) | |
| группа.Среднее(x => x.Property) | AVG(Property) | |
| группа.Кол-во() | COUNT(*) | |
| группа. LongCount() | COUNT_BIG(*) | |
| группа.Max(x => x.Property) | MAX(Property) | |
| группа.Min(x => x.Property) | MIN(Свойство) | |
| группа.Sum(x => x.Свойство) | СУММ(свойство) | |
| string.Concat(group.Select(x => x.Property)) | STRING_AGG(Свойство, N'') | |
| строка.Join(separator, group.Select(x => x.Property)) | STRING_AGG(Свойство, @separator) |
Двоичные функции
| .NET | SQL | Добавлено в |
|---|---|---|
| Байт. Contains(value) | CHARINDEX(@value, @bytes)> 0 | |
| байты.ElementAt(i) | SUBSTRING(@bytes, @i + 1, 1) | |
| байты.First() | SUBSTRING(@bytes, 1, 1) | |
| Байт. Длина | DATALENGTH(@bytes) | |
| bytes.SequenceEqual(second) | @bytes = @second | |
| bytes[i] | SUBSTRING(@bytes, @i + 1, 1) | |
| EF.Functions.DataLength(arg) | DATALENGTH(@arg) |
Функции преобразования
| .NET | SQL | Добавлено в |
|---|---|---|
| bytes.ToString() | CONVERT(varchar(100), @bytes) | |
| byteValue.ToString() | CONVERT(varchar(3), @byteValue) | |
| charValue.ToString() | CONVERT(varchar(1), @charValue) | |
| Convert.ToBoolean(value) | CONVERT(bit, @value) | |
| Convert.ToByte(value) | CONVERT(tinyint, @value) | |
| Convert.ToDecimal(value) | CONVERT(decimal(18, 2), @value) | |
| Convert.ToDouble(value) | CONVERT(float, @value) | |
| Convert.ToInt16(value) | CONVERT(smallint, @value)) | |
| Convert.ToInt32(value) | CONVERT(int, @value) | |
| Convert.ToInt64(value) | CONVERT(bigint, @value) | |
| Convert.ToString(value) | CONVERT(nvarchar(max), @value) | |
| dateOnly.ToString() | CONVERT(varchar(100), @dateOnly) | |
| dateTime.ToString() | CONVERT(varchar(100), @dateTime) | |
| dateTimeOffset.ToString() | CONVERT(varchar(100), @dateTimeOffset) | |
| decimalValue.ToString() | CONVERT(varchar(100), @decimalValue) | |
| doubleValue.ToString() | CONVERT(varchar(100), @doubleValue) | |
| floatValue.ToString() | CONVERT(varchar(100), @floatValue) | |
| guid. ToString() | CONVERT(varchar(36), @guid) | |
| intValue.ToString() | CONVERT(varchar(11), @intValue) | |
| longValue.ToString() | CONVERT(varchar(20), @longValue) | |
| sbyteValue.ToString() | CONVERT(varchar(4), @sbyteValue) | |
| shortValue.ToString() | CONVERT(varchar(6), @shortValue) | |
| timeOnly.ToString() | CONVERT(varchar(100), @timeOnly) | |
| timeSpan.ToString() | CONVERT(varchar(100), @timeSpan) | |
| uintValue.ToString() | CONVERT(varchar(10), @uintValue) | |
| ulongValue.ToString() | CONVERT(varchar(19), @ulongValue) | |
| ushortValue.ToString() | CONVERT(varchar(5), @ushortValue) |
Функции даты и времени
| .NET | SQL | Добавлено в |
|---|---|---|
| DateTime.Now | GETDATE() | |
| DateTime.Today | CONVERT(date, GETDATE()) | |
| DateTime.UtcNow | GETUTCDATE() | |
| dateTime.AddDays(value) | DATEADD(day, @value, @dateTime)) | |
| dateTime.AddHours(value) | DATEADD(час, @value, @dateTime)) | |
| dateTime.AddMilliseconds(value) | DATEADD(миллисекунда, @value, @dateTime) | |
| dateTime.AddMinutes(value) | DATEADD(минута, @value, @dateTime) | |
| dateTime.AddMonths(months) | DATEADD(месяц, @months, @dateTime) | |
| dateTime.AddSeconds(value) | DATEADD(second, @value, @dateTime)) | |
| dateTime.AddYears(value) | DATEADD(год, @value, @dateTime) | |
| dateTime.Date | CONVERT(date, @dateTime) | |
| dateTime.Day | DATEPART(day, @dateTime) | |
| dateTime.DayOfYear | DATEPART(деньгод, @dateTime) | |
| dateTime.Hour | DATEPART(час, @dateTime) | |
| dateTime.Microsecond | DATEPART(микросекунда, @dateTime) % 1000 | EF Core 10.0 |
| dateTime.Millisecond | DATEPART(миллисекунда, @dateTime) | |
| dateTime.Minute | DATEPART(minute, @dateTime) | |
| dateTime.Month | DATEPART(месяц, @dateTime) | |
| dateTime.Nanosecond | DATEPART(наносекунда, @dateTime) % 1000 | EF Core 10.0 |
| dateTime.Second | DATEPART(секунда, @dateTime) | |
| dateTime.TimeOfDay | CONVERT(время, @dateTime) | |
| dateTime.Year | DATEPART(год, @dateTime) | |
| DateTimeOffset.Now | SYSDATETIMEOFFSET() | |
| DateTimeOffset.UTCNow | SYSUTCDATETIME() | |
| dateTimeOffset.AddDays(days) | DATEADD(day, @days, @dateTimeOffset)) | |
| dateTimeOffset.AddHours(hours) (Метод добавляет количество часов к величине даты и времени) | DATEADD(час, @hours, @dateTimeOffset)) | |
| dateTimeOffset.AddMilliseconds(миллисекундах) | DATEADD(миллисекунда, @milliseconds, @dateTimeOffset) | |
| dateTimeOffset.AddMinutes(минуты) | DATEADD(минута, @minutes, @dateTimeOffset) | |
| dateTimeOffset.AddMonths(месяц) | DATEADD(месяц, @months, @dateTimeOffset) | |
| dateTimeOffset.AddSeconds(секунды) | DATEADD(second, @seconds, @dateTimeOffset)) | |
| dateTimeOffset.AddYears(years) | DATEADD(год, @years, @dateTimeOffset) | |
| dateTimeOffset.Date | CONVERT(date, @dateTimeOffset) | |
| dateTimeOffset.DateTime | CONVERT(datetime2, @dateTimeOffset) | EF Core 11.0 |
| dateTimeOffset.Day | DATEPART(day, @dateTimeOffset) | |
| dateTimeOffset.DayOfYear | DATEPART(деньгод, @dateTimeOffset) | |
| dateTimeOffset.Hour | DATEPART(час, @dateTimeOffset) | |
| dateTimeOffset.LocalDateTime | CONVERT(datetime2, @dateTimeOffset AT TIME ZONE CURRENT_TIMEZONE_ID()) | EF Core 11.0 |
| dateTimeOffset.Microsecond | DATEPART(микросекунда, @dateTimeOffset) % 1000 | EF Core 10.0 |
| dateTimeOffset.Millisecond | DATEPART(миллисекунда, @dateTimeOffset) | |
| dateTimeOffset.Minute | Функция DATEPART(минута, @dateTimeOffset) | |
| dateTimeOffset.Month (месяц) | DATEPART(месяц, @dateTimeOffset) | |
| dateTimeOffset.Наносекунда | DATEPART(наносекунда, @dateTimeOffset) % 1000 | EF Core 10.0 |
| dateTimeOffset.Offset.TotalMinutes | CAST(DATEPART(tz, @dateTimeOffset) AS float) | EF Core 11.0 |
| dateTimeOffset.Second (секунда объекта DateTimeOffset) | DATEPART(секунда, @dateTimeOffset) | |
| dateTimeOffset.ВремяДня | CONVERT(время, @dateTimeOffset) | |
| dateTimeOffset.ToOffset(offset) | SWITCHOFFSET(@dateTimeOffset, @offset) | EF Core 11.0 |
| dateTimeOffset.ToUnixTimeSeconds() | DATEDIFF_BIG(секунда, '1970-01-01T00:00:00.0000000+00:00', @dateTimeOffset) | |
| dateTimeOffset.ToUnixTimeMilliseconds() | DATEDIFF_BIG(миллисекунда, '1970-01-01T00:00:00.0000000+00:00', @dateTimeOffset) | |
| dateTimeOffset.UtcDateTime | CONVERT(datetime2, @dateTimeOffset AT TIME ZONE 'UTC') | EF Core 11.0 |
| dateTimeOffset.Year | DATEPART(год, @dateTimeOffset) | |
| new DateTimeOffset(dateTime) | TODATETIMEOFFSET(@dateTime, "+00:00") | EF Core 11.0 |
| new DateTimeOffset(dateTime, offset) | TODATETIMEOFFSET(@dateTime, @offset) | EF Core 11.0 |
| DateOnly.FromDateTime(dateTime) | CONVERT(date, @dateTime) | |
| dateOnly.AddDays(value) | DATEADD(day, @value, @dateOnly)) | |
| dateOnly.AddMonths(месяцы) | DATEADD(месяц, @months, @dateOnly) | |
| dateOnly.AddYears(value) | DATEADD(год, @value, @dateOnly) | |
| dateOnly.День | DATEPART(день, @dateOnly) | |
| dateOnly.DayOfYear | DATEPART(деньгод, @dateOnly) | |
| dateOnly.Month | DATEPART(месяц, @dateOnly) | |
| dateOnly.Year | DATEPART(год, @dateOnly) | |
| dateOnly.DayNumber | Функция DATEDIFF(day, '0001-01-01', @dateOnly) | EF Core 10.0 |
| EF. Functions.AtTimeZone(dateTime, timeZone) | @dateTime ЧАСОВОЙ ПОЯС @timeZone | |
| EF.Functions.DateDiffDay(start, end) | DATEDIFF(day, @start, @end)) | |
| EF.Functions.DateDiffHour(start, end) | DATEDIFF(hour, @start, @end)) | |
| EF.Functions.DateDiffMicrosecond(начало, конец) | DATEDIFF(микросекунда, @start, @end)) | |
| EF.Functions.DateDiffMillisecond(start, end) | DATEDIFF(миллисекунда, , @start@end) | |
| EF.Functions.DateDiffMinute(start, end) | DATEDIFF(минута, @start, @d2)) | |
| EF.Functions.DateDiffMonth(start, end) | DATEDIFF(месяц, , @start@end) | |
| EF.Functions.DateDiffNanosecond(start, end) | DATEDIFF(nanosecond, @start, @end)) | |
| EF.Functions.DateDiffSecond(start, end) | DATEDIFF(second, , @start@end) | |
| EF.Functions.DateDiffWeek(start, end) | DATEDIFF(неделя, @start, @end)) | |
| EF.Functions.DateDiffYear(start, end) | DATEDIFF(год, @start, @end)) | |
| EF.Functions.DateFromParts(year, month, day) | DATEFROMPARTS(@year, @month, @day)) | |
| EF.Functions.DateTime2FromParts(год, месяц, день, ...) | DATETIME2FROMPARTS(@year, @month, @day...) | |
| ЭФ. Functions.DateTimeFromParts(year, month, day, ...) | DATETIMEFROMPARTS(@year, @month, @day...) | |
| EF.Functions.DateTimeOffsetFromParts(год, месяц, день, ...) | DATETIMEOFFSETFROMPARTS(@year, @month, @day...) | |
| EF.Functions.DateTrunc(datepart, value) | DATETRUNC(@datepart, @value) | EF Core 11.0 |
| EF.Functions.IsDate(expression) | ISDATE(@expression) | |
| EF.Functions.SmallDateTimeFromParts(год, месяц, день, ...) | SMALLDATETIMEFROMPARTS(@year, @month, @day...) - функция для построения значения даты и времени из компонентов года, месяца и дня. | |
| EF.Functions.TimeFromParts(hour, minute, second, ...) | TIMEFROMPARTS(@hour, @minute, @second...) | |
| timeOnly.AddHours(value) | DATEADD(час, @value, @timeOnly)) | |
| timeOnly.AddMinutes(value) | DATEADD(минута, @value, @timeOnly) | |
| timeOnly.Hour | DATEPART(час, @timeOnly) | |
| timeOnly.IsBetween(start, end) (определяет, находится ли значение timeOnly между start и end) | @timeOnly >= @start AND @timeOnly<@end | |
| timeOnly.Microsecond | DATEPART(микросекунда, @timeOnly) % 1000 | EF Core 10.0 |
| timeOnly.Миллисекунда | DATEPART(миллисекунда, @timeOnly) | |
| timeOnly.Minute | DATEPART(минута, @timeOnly) | |
| timeOnly.Наносекунда | DATEPART(наносекунда, @timeOnly) % 1000 | EF Core 10.0 |
| timeOnly.Second | DATEPART(секунда, @timeOnly) | |
| timeSpan.Hours | DATEPART(час, @timeSpan) | |
| timeSpan.Микросекунда | DATEPART(микросекунда, @timeSpan) % 1000 | EF Core 10.0 |
| timeSpan.Milliseconds | DATEPART(миллисекунда, @timeSpan) | |
| timeSpan.Minutes | DATEPART(minute, @timeSpan) | |
| timeSpan.Наносекунда | DATEPART(наносекунда, @timeSpan) % 1000 | EF Core 10.0 |
| timeSpan.Seconds | DATEPART(секунда, @timeSpan) |
Числовые функции
| .NET | SQL | Добавлено в |
|---|---|---|
| двойной. DegreesToRadians(x) | RADIANS(@x) | |
| double.RadiansToDegrees(x) | DEGREES(@x) | |
| EF.Functions.Random() | RAND() | |
| Math.Abs(value) | ABS(@value) | |
| Math.Acos(d) | ACOS(@d) | |
| Math.Asin(d) | ASIN(@d) | |
| Math.Atan(d) | ATAN(@d) | |
| Math.Atan2(y, x) | ATN2(@y, @x) | |
| Math.Ceiling(d) | CEILING(@d) | |
| Math.Cos(d) | COS(@d) | |
| Math.Exp(d) | EXP(@d) | |
| Math.Floor(d) | FLOOR(@d) | |
| Math.Log(d) | LOG(@d) | |
| Math.Log(a, newBase) | LOG(@a, @newBase) | |
| Math.Log10(d) | LOG10(@d) | |
| Math.Max(x, y) | GREATEST(@x, @y) | EF Core 9.0 |
| Math.Min(x, y) | НАИМЕНЬШЕЕ(@x, @y) | EF Core 9.0 |
| Math.Pow(x, y) | POWER(@x, @y) | |
| Math.Round(d) | ROUND(@d, 0) | |
| Math.Round(d, десятичные значения) | ROUND(@d, @decimals) | |
| Math.Sign(value) | SIGN(@value) | |
| Math.Sin(a) | SIN(@a) | |
| Math.Sqrt(d) | SQRT(@d) | |
| Math.Tan(a) | TAN(@a) | |
| Math.Truncate(d) | ROUND(@d, 0, 1) |
Совет
Помимо методов, перечисленных здесь, также переводятся соответствующие универсальные математические реализации и методы MathF . Например, Math.Sin, MathF.Sin, double.Sin и float.Sin все сопоставляются с функцией SIN в SQL.
Строковые функции
| .NET | SQL | Добавлено в |
|---|---|---|
| EF.Functions.Collate(операнд, колляция) | @operand КОЛЛАЦИЯ @collation | |
| ЭФ. Functions.Contains(propertyReference, searchCondition) | CONTAINS(@propertyReference, @searchCondition) | |
| ЭФ. Functions.Contains(propertyReference, searchCondition, languageTerm) | CONTAINS(@propertyReference, @searchCondition, LANGUAGE @languageTerm) | |
| EF.Functions.FreeText(propertyReference, freeText) | FREETEXT(@propertyReference, @freeText) | |
| EF. Functions.FreeText(propertyReference, freeText, languageTerm) | FREETEXT(@propertyReference, @freeText, ЯЗЫК @languageTerm) | |
| EF.Functions.IsNumeric(expression) | ISNUMERIC(@expression) | |
| EF.Functions.Like(matchExpression, pattern) | @matchExpression ЛЮБИТЬ @pattern | |
| EF.Functions.Like(matchExpression, pattern, escapeCharacter) | @matchExpression КАК @pattern ESCAPE @escapeCharacter | |
| string.Compare(strA, strB) | СЛУЧАЙ, КОГДА @strA = @strB ЗАТЕМ 0 ... КОНЕЦ | |
| строка.Concat(str0, str1) | @str0 + @str1 | |
| строка.IsNullOrEmpty(value) | @value ИМЕЕТ ЗНАЧЕНИЕ NULL ИЛИ @value КАК N'' | |
| строка.IsNullOrWhiteSpace(value) | @value IS NULL OR @value = N'' | |
| строка.Join(", ", new [] { x, y, z}) | CONCAT_WS(N", ", @x, @y, @z)) | EF Core 9.0 |
| stringValue.CompareTo(strB) | СЛУЧАЙ, КОГДА @stringValue = @strB ЗАТЕМ 0 ... КОНЕЦ | |
| stringValue.Contains(value) | @stringValue LIKE N'%' + @value +N'%' | |
| stringValue.EndsWith(value) | @stringValue LIKE N'%' + @value | |
| stringValue.FirstOrDefault() | Функция SUBSTRING(@stringValue, 1, 1) возвращает первый символ строки. | |
| stringValue.IndexOf(value) | CHARINDEX(@value, @stringValue) - 1 | |
| stringValue.IndexOf(value, startIndex) | CHARINDEX(@value, @stringValue, @startIndex) - 1) | |
| stringValue.LastOrDefault() | SUBSTRING(@stringValue, LEN(@stringValue), 1) | |
| stringValue.Length | LEN(@stringValue) | |
| stringValue.Replace(@oldValue, @newValue) | REPLACE(@stringValue, @oldValue, @newValue)) | |
| stringValue.StartsWith(value) | @stringValue LIKE @value + N'%' | |
| stringValue.Substring(startIndex) | SUBSTRING(@stringValue, @startIndex + 1, LEN(@stringValue)) | |
| stringValue.Substring(startIndex, length) | SUBSTRING(@stringValue, @startIndex + 1, @length) | |
| stringValue.ToLower() | LOWER(@stringValue) | |
| stringValue.ToUpper() | UPPER(@stringValue) | |
| stringValue.Trim() | LTRIM(RTRIM(@stringValue)) | |
| stringValue.TrimEnd() | RTRIM(@stringValue) | |
| stringValue.TrimStart() | LTRIM(@stringValue) |
Функции JSON
| .NET | SQL | Добавлено в |
|---|---|---|
| EF.Functions.JsonContains(json, searchValue, path?, searchMode?) | JSON_CONTAINS(@json, @searchValue, @path?, @searchMode?)) | EF 11.0 |
| EF.Functions.JsonPathExists(json, path) | JSON_PATH_EXISTS(@json, @path) | EF 11.0 |
Прочие функции
| .NET | SQL | Добавлено в |
|---|---|---|
| enumValue.HasFlag(flag) | @enumValue И @flag = @flag | |
| Guid.NewGuid() | NEWID() | |
| nullable.GetValueOrDefault() | COALESCE(@nullable, 0) (выбирает первое ненулевое значение) | |
| nullable.GetValueOrDefault(defaultValue) | COALESCE(@nullable, @defaultValue) |
Примечание.
Некоторые переводы SQL были упрощены для иллюстрации. Фактический SQL является более сложным для обработки более широкого диапазона значений.