Pemetaan Fungsi Penyedia Microsoft SQL Server

Halaman ini menunjukkan anggota .NET mana yang diterjemahkan ke dalam fungsi SQL mana saat menggunakan penyedia SQL Server.

Fungsi agregat

.NET SQL Ditambahkan dalam
EF. Functions.StandardDeviationSample(group. Pilih(x => x.Property)) STDEV(Properti)
EF. Functions.StandardDeviationPopulation(group. Pilih(x => x.Property)) STDEVP(Properti)
EF. Functions.VarianceSample(group. Pilih(x => x.Property)) VAR(Properti)
EF.Functions.VariancePopulation(group.Select(x => x.Property)) VARP(Properti)
kelompok.RataRata(x => x.Property) AVG(Property)
kelompok. Count() COUNT(*)
kelompok. LongCount() COUNT_BIG(*)
group.MAX(x => x.Property) MAX(Property)
kelompok. Min(x => x.Property) MIN(Property)
kelompok.Jumlah(x => x.Property) JUMLAH(Properti)
String.Concat(group.Select(x => x.Property)) STRING_AGG(Properti, N''')
tali. Gabung(pemisah, grup. Pilih(x => x.Property)) STRING_AGG(Properti, @separator)

Fungsi biner

.NET SQL Ditambahkan dalam
Byte. Contains(value) CHARINDEX(@value, @bytes)> 0
bytes.ElementAt(i) SUBSTRING(@bytes, @i + 1, 1)
bytes.First() SUBSTRING(@bytes, 1, 1)
Byte. Panjangnya DATALENGTH(@bytes)
ByteSequenceEqual(second) @bytes = @second
bytes[i] SUBSTRING(@bytes, @i + 1, 1)
EF.Functions.DataLength(arg) DATALENGTH(@arg)

Fungsi konversi

.NET SQL Ditambahkan dalam
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) (mengubah ke desimal dengan nilai) CONVERT(desimal(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)

Fungsi tanggal dan waktu

.NET SQL Ditambahkan dalam
DateTime.Now GETDATE()
DateTime.Today CONVERT(date, GETDATE())
DateTime.UtcNow GETUTCDATE()
dateTime.AddDays(value) DATEADD(hari, @value, @dateTime)
dateTime.AddHours(value) DATEADD(jam, @value, @dateTime)
dateTime.AddMilliseconds(value) DATEADD(milidetik, @value, @dateTime)
dateTime.AddMinutes(value) DATEADD(menit, @value, @dateTime)
dateTime.AddMonths(bulan) DATEADD(bulan, @months, @dateTime)
dateTime.AddSeconds(value) DATEADD(detik, @value, @dateTime)
dateTime.AddYears(value) DATEADD(tahun, @value, @dateTime)
dateTime.Date KONVERSI(tanggal, @dateTime)
dateTime.Day DATEPART(hari, @dateTime)
dateTime.DayOfYear DATEPART(dayofyear, @dateTime)
dateTime.Hour DATEPART(jam, @dateTime)
dateTime.Microsecond DATEPART(microsecond, @dateTime) % 1000 EF Core 10.0
dateTime.Millisecond DATEPART(milidetik, @dateTime)
dateTime.Minute DATEPART(menit, @dateTime)
dateTime.Month DATEPART(bulan, @dateTime)
dateTime.Nanosecond DATEPART(nanodetik, @dateTime) % 1000 EF Core 10.0
dateTime.Second DATEPART(detik, @dateTime)
dateTime.TimeOfDay CONVERT(waktu, @dateTime)
dateTime.Year DATEPART(tahun, @dateTime)
DateTimeOffset.Now SYSDATETIMEOFFSET()
DateTimeOffset.UtcNow SYSUTCDATETIME()
dateTimeOffset.AddDays(days) DATEADD(hari, @days, @dateTimeOffset)
dateTimeOffset.AddHours(hours) DATEADD(jam, @hours, @dateTimeOffset)
dateTimeOffset.AddMilliseconds(milisecond) DATEADD(milidetik, @milliseconds, @dateTimeOffset)
dateTimeOffset.AddMinutes(menit) DATEADD(menit, @minutes, @dateTimeOffset)
dateTimeOffset.AddMonths(bulan) DATEADD(bulan, @months, @dateTimeOffset)
dateTimeOffset.AddSeconds(detik) DATEADD(detik, @seconds, @dateTimeOffset)
dateTimeOffset.AddYears(years) DATEADD(tahun, @years, @dateTimeOffset)
dateTimeOffset.Date KONVERSI(tanggal, @dateTimeOffset)
dateTimeOffset.DateTime CONVERT(datetime2, @dateTimeOffset) EF Core 11.0
dateTimeOffset.Day DATEPART(hari, @dateTimeOffset)
dateTimeOffset.DayOfYear DATEPART(dayofyear, @dateTimeOffset)
dateTimeOffset.Hour DATEPART(jam, @dateTimeOffset)
dateTimeOffset.LocalDateTime CONVERT(datetime2, @dateTimeOffset AT TIME ZONE CURRENT_TIMEZONE_ID()) EF Core 11.0
dateTimeOffset.Microsecond DATEPART(microsecond, @dateTimeOffset) % 1000 EF Core 10.0
dateTimeOffset.Millisecond DATEPART(milidetik, @dateTimeOffset)
dateTimeOffset.Minute DATEPART(menit, @dateTimeOffset)
dateTimeOffset.Month DATEPART(bulan, @dateTimeOffset)
dateTimeOffset.Nanosecond DATEPART(nanodetik, @dateTimeOffset) % 1000 EF Core 10.0
dateTimeOffset.Offset.TotalMinutes CAST(DATEPART(tz, @dateTimeOffset) AS float) EF Core 11.0
dateTimeOffset.Second DATEPART(detik, @dateTimeOffset)
dateTimeOffset.WaktuDalamSehari CONVERT(waktu, @dateTimeOffset)
dateTimeOffset.ToOffset(offset) SWITCHOFFSET(@dateTimeOffset, @offset) EF Core 11.0
dateTimeOffset.ToUnixTimeSeconds() DATEDIFF_BIG(detik, '1970-01-01T00:00:00.0000000+00:00', @dateTimeOffset)
dateTimeOffset.ToUnixTimeMilliseconds() DATEDIFF_BIG(milidetik, '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(tahun, @dateTimeOffset)
DateTimeOffset baru(dateTime) TODATETIMEOFFSET(@dateTime, '+00:00') EF Core 11.0
new DateTimeOffset(dateTime, offset) TODATETIMEOFFSET(@dateTime, @offset) EF Core 11.0
DateOnly.FromDateTime(dateTime) KONVERSI(tanggal, @dateTime)
dateOnly.AddDays(value) DATEADD(hari, @value, @dateOnly)
dateOnly.AddMonths(bulan) DATEADD(bulan, @months, @dateOnly)
dateOnly.AddYears(value) DATEADD(tahun, @value, @dateOnly)
dateOnly.Day DATEPART(hari, @dateOnly)
dateOnly.DayOfYear DATEPART(hari_dalam_tahun, @dateOnly)
dateOnly.Month DATEPART(bulan, @dateOnly)
dateOnly.Tahun DATEPART(tahun, @dateOnly)
dateOnly.DayNumber DATEDIFF(hari, '0001-01-01', @dateOnly) EF Core 10.0
EF. Functions.AtTimeZone(dateTime, timeZone) @dateTime DI ZONA WAKTU @timeZone
EF.Functions.DateDiffDay(start, end) DATEDIFF(hari, @start, @end)
EF.Functions.DateDiffHour(start, end) DATEDIFF(jam, @start, @end)
EF.Functions.DateDiffMicrosecond(start, end) DATEDIFF(microsecond, @start, @end)
EF.Functions.DateDiffMillisecond(start, end) DATEDIFF(milidetik, @start, @end)
EF. Functions.DateDiffMinute(start, end) DATEDIFF(menit, @start, @d2)
EF.Functions.DateDiffMonth(start, end) DATEDIFF(bulan, @start, @end)
EF.Functions.DateDiffNanosecond(start, end) DATEDIFF(nanosekon, @start, @end)
EF.Functions.DateDiffSecond(start, end) DATEDIFF(detik, @start, @end)
EF.Functions.DateDiffWeek(start, end) DATEDIFF(minggu, @start, @end)
EF.Functions.DateDiffYear(start, end) DATEDIFF(tahun, @start, @end)
EF.Functions.DateFromParts(tahun, bulan, hari) DATEFROMPARTS(@year, @month, @day)
EF.Functions.DateTime2FromParts(year, month, day, ...) DATETIME2FROMPARTS(@year, @month, @day, ...)
EF. Functions.DateTimeFromParts(year, month, day, ...) DATETIMEFROMPARTS(@year, @month, @day, ...)
EF.Functions.DateTimeOffsetFromParts(tahun, bulan, hari, ...) 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(tahun, bulan, hari, ...) SMALLDATETIMEFROMPARTS(@year, , @month, @day...)
EF. Functions.TimeFromParts(jam, menit, detik, ...) TIMEFROMPARTS(@hour, @minute, @second, ...)
timeOnly.AddHours(value) DATEADD(jam, @value, @timeOnly)
timeOnly.AddMinutes(value) DATEADD(menit, @value, @timeOnly)
timeOnly.Hour DATEPART(jam, @timeOnly)
timeOnly.IsBetween(start, end) yang berarti nilai "timeOnly" berada di antara "start" dan "end". @timeOnly >= @start DAN @timeOnly<@end
timeOnly.Microsecond DATEPART(microsecond, @timeOnly) % 1000 EF Core 10.0
timeOnly.Millisecond DATEPART(milidetik, @timeOnly)
timeOnly.Minute DATEPART(menit, @timeOnly)
timeOnly.Nanosecond DATEPART(nanodetik, @timeOnly) % 1000 EF Core 10.0
timeOnly.Second DATEPART(detik, @timeOnly)
timeSpan.Hours DATEPART(jam, @timeSpan)
timeSpan.Microsecond DATEPART(microsecond, @timeSpan) % 1000 EF Core 10.0
timeSpan.Milliseconds DATEPART(milidetik, @timeSpan)
timeSpan.Minutes DATEPART(menit, @timeSpan)
timeSpan.Nanosecond DATEPART(nanodetik, @timeSpan) % 1000 EF Core 10.0
timeSpan.Seconds DATEPART(detik, @timeSpan)

Fungsi numerik

.NET SQL Ditambahkan dalam
dobel. DegreesToRadians(x) RADIANS(@x)
dobel. 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) LEAST(@x, @y) EF Core 9.0
Math.Pow(x, y) POWER(@x, @y)
Math.Round(d) ROUND(@d, 0)
Math.Round(d, desimal) 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)

Petunjuk

Selain metode yang tercantum di sini, implementasi matematika generik yang sesuai dan metode MathF juga diterjemahkan. Misalnya, Math.Sin, MathF.Sin, double.Sin, dan float.Sin semuanya memetakan ke fungsi SIN dalam SQL.

Fungsi string

.NET SQL Ditambahkan dalam
EF.Functions.Collate(operand, collation) @operand KOLOKASI @collation
EF.Functions.Contains(propertyReference, searchCondition) CONTAINS(@propertyReference, @searchCondition)
EF.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, BAHASA @languageTerm)
EF.Functions.IsNumeric(expression) ISNUMERIC(@expression)
EF.Functions.Like(matchExpression, pattern) @matchExpression SUKA @pattern
EF.Functions.Like(matchExpression, pattern, escapeCharacter) @matchExpression SEPERTI @pattern ESCAPE @escapeCharacter
string.compare(strA, strB) KASUS KAPAN @strA = @strB KEMUDIAN 0 ... END
String.Concat(str0, str1) @str0 + @str1
string.IsNullOrEmpty(value) @value ADALAH NULL ATAU @value SEPERTI N''
string.IsNullOrWhiteSpace(value) @value ADALAH NULL ATAU @value = N''
String. Join(", ", new [] { x, y, z}) CONCAT_WS(N', ', @x, @y, @z)) EF Core 9.0
stringValue.CompareTo(strB) KASUS KAPAN @stringValue = @strB KEMUDIAN 0 ... END
stringValue.Contains(value) @stringValue SEPERTI 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() Fungsi SUBSTRING(@stringValue, LEN(@stringValue), 1) digunakan untuk mengambil karakter terakhir dari @stringValue.
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)

Fungsi JSON

.NET SQL Ditambahkan dalam
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

Fungsi lain

.NET SQL Ditambahkan dalam
enumValue.HasFlag(flag) @enumValue & @flag = @flag
Guid.NewGuid() NEWID()
nullable.GetValueOrDefault() COALESCE(@nullable, 0)
dapat diubah ke null. GetValueOrDefault(defaultValue) COALESCE(@nullable, @defaultValue)

Catatan

Beberapa terjemahan SQL telah disederhanakan untuk tujuan ilustrasi. SQL aktual lebih kompleks untuk menangani berbagai nilai yang lebih luas.

Lihat juga