Bagikan melalui


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 Core 7.0
EF. Functions.StandardDeviationPopulation(group. Pilih(x => x.Property)) STDEVP(Properti) EF Core 7.0
EF. Functions.VarianceSample(group. Pilih(x => x.Property)) VAR(Properti) EF Core 7.0
EF. Functions.VariancePopulation(group. Pilih(x => x.Property)) VARP(Properti) EF Core 7.0
kelompok. Average(x => x.Property) AVG(Property)
kelompok. Count() COUNT(*)
kelompok. LongCount() COUNT_BIG(*)
kelompok. Maks(x => x.Property) MAX(Property)
kelompok. Min(x => x.Property) MIN(Property)
kelompok. Sum(x => x.Property) SUM(Properti)
tali. Concat(grup. Pilih(x => x.Property)) STRING_AGG(Properti, N''') EF Core 7.0
tali. Gabung(pemisah, grup. Pilih(x => x.Property)) STRING_AGG(Properti, @separator) EF Core 7.0

Fungsi biner

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

Fungsi konversi

.NET SQL Ditambahkan dalam
Byte. 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(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) EF Core 8.0
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) EF Core 8.0
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(year, @value, @dateTime)
dateTime.Date CONVERT(date, @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(time, @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(milidetik) 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(year, @years, @dateTimeOffset)
dateTimeOffset.Date CONVERT(date, @dateTimeOffset)
dateTimeOffset.Day DATEPART(hari, @dateTimeOffset)
dateTimeOffset.DayOfYear DATEPART(dayofyear, @dateTimeOffset)
dateTimeOffset.Hour DATEPART(jam, @dateTimeOffset)
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.Second DATEPART(detik, @dateTimeOffset)
dateTimeOffset.TimeOfDay CONVERT(time, @dateTimeOffset)
dateTimeOffset.ToUnixTimeSeconds() DATEDIFF_BIG(detik, '1970-01-01T00:00:00.0000000+00:00', @dateTimeOffset) EF Core 8.0
dateTimeOffset.ToUnixTimeMilliseconds() DATEDIFF_BIG(milidetik, '1970-01-01T00:00:00.0000000+00:00', @dateTimeOffset) EF Core 8.0
dateTimeOffset.Year DATEPART(tahun, @dateTimeOffset)
DateOnly.FromDateTime(dateTime) CONVERT(date, @dateTime) EF Core 8.0
dateOnly.AddDays(value) DATEADD(hari, @value, @dateOnly) EF Core 8.0
dateOnly.AddMonths(bulan) DATEADD(bulan, @months, @dateOnly) EF Core 8.0
dateOnly.AddYears(value) DATEADD(year, @value, @dateOnly) EF Core 8.0
dateOnly.Day DATEPART(hari, @dateOnly) EF Core 8.0
dateOnly.DayOfYear DATEPART(dayofyear, @dateOnly) EF Core 8.0
dateOnly.Month DATEPART(bulan, @dateOnly) EF Core 8.0
dateOnly.Year DATEPART(tahun, @dateOnly) EF Core 8.0
EF. Functions.AtTimeZone(dateTime, timeZone) @dateTime ZONA WAKTU @timeZone EF Core 7.0
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(nanodetik, @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.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) EF Core 8.0
timeOnly.AddMinutes(value) DATEADD(menit, @value, @timeOnly) EF Core 8.0
timeOnly.Hour DATEPART(jam, @timeOnly) EF Core 8.0
timeOnly.IsBetween(start, end) @timeOnly >= @start DAN @timeOnly<@end EF Core 8.0
timeOnly.Microsecond DATEPART(microsecond, @timeOnly) % 1000 EF Core 10.0
timeOnly.Millisecond DATEPART(milidetik, @timeOnly) EF Core 8.0
timeOnly.Minute DATEPART(menit, @timeOnly) EF Core 8.0
timeOnly.Nanosecond DATEPART(nanodetik, @timeOnly) % 1000 EF Core 10.0
timeOnly.Second DATEPART(detik, @timeOnly) EF Core 8.0
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(nanosecond, @timeSpan) % 1000 EF Core 10.0
timeSpan.Seconds DATEPART(detik, @timeSpan)

Fungsi numerik

.NET SQL Ditambahkan dalam
dobel. DegreesToRadians(x) RADIANS(@x) EF Core 8.0
dobel. RadiansToDegrees(x) DEGREES(@x) EF Core 8.0
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)

Tip

Selain metode yang tercantum di sini, implementasi matematika generik yang sesuai dan metode MathF juga diterjemahkan. Misalnya, Math.Sin, , MathF.Sindouble.Sin, dan float.Sin semua peta ke SIN fungsi di SQL.

Fungsi string

.NET SQL Ditambahkan dalam
EF. Functions.Collate(operand, collation) @operand SUSUN @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, LANGUAGE @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
tali. Bandingkan(strA, strB) KASUS KETIKA @strA = @strB KEMUDIAN 0 ... UJUNG
tali. Concat(str0, str1) @str0 + @str1
tali. IsNullOrEmpty(value) @value NULL ATAU @value SEPERTI N''
tali. IsNullOrWhiteSpace(value) @value IS NULL OR @value = N''
tali. Join(", ", new [] { x, y, z}) CONCAT_WS(N', ', @x, , @y@z) EF Core 9.0
stringValue.CompareTo(strB) KASUS KETIKA @stringValue = @strB KEMUDIAN 0 ... UJUNG
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 EF Core 7.0
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)

Fungsi lain

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

Catatan

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

Lihat juga