Condividi tramite


Mapping delle funzioni del provider Microsoft SQL Server

Questa pagina mostra quali membri .NET vengono convertiti in quali funzioni SQL quando si usa il provider SQL Server.

Funzioni di aggregazione

.NET SQL Aggiunta in
EF. Functions.StandardDeviationSample(group. Select(x => x.Property)) STDEV(Property)
EF.Functions.StandardDeviationPopulation(group.Select(x => x.Property)) STDEVP(Property)
EF. Functions.VarianceSample(group. Select(x => x.Property)) VAR(Proprietà)
EF.Functions.VariancePopulation(group.Select(x => x.Property)) VARP(Proprietà)
gruppo. Average(x => x.Property) AVG(Property)
gruppo. Count() COUNT(*)
gruppo.LongCount() COUNT_BIG(*)
gruppo.Max(x => x.Property) MAX(Property)
gruppo.Min(x => x.Proprietà) MIN(Property)
gruppo.Somma(x => x.Property) SOMMA(Property)
string.Concat(group.Select(x => x.Property)) STRING_AGG(Property, N'')
string.Join(separatore, gruppo.Select(x => x.Property)) STRING_AGG(Property, @separator)

Funzioni binarie

.NET SQL Aggiunta in
Byte. Contains(value) CHARINDEX(@value, @bytes)> 0
bytes.ElementAt(i) SUBSTRING(@bytes, @i + 1, 1)
bytes.First() SUBSTRING(@bytes, 1, 1)
Byte. Lunghezza DATALENGTH(@bytes)
bytes.SequenceEqual(second) @bytes = @second
byte[i] SUBSTRING(@bytes, @i + 1, 1)
EF.Functions.DataLength(arg) DATALENGTH(@arg)

Funzioni di conversione

.NET SQL Aggiunta in
bytes.ToString() CONVERT(varchar(100), @bytes)
byteValue.ToString() CONVERT(varchar(3), @byteValue)
charValue.ToString() CONVERT(varchar(1), @charValue)
Convert.ToBoolean(valore) 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)

Funzioni di data e ora

.NET SQL Aggiunta in
DateTime.Now GETDATE()
DateTime.Today CONVERT(date, GETDATE())
DateTime.UtcNow GETUTCDATE()
dateTime.AddDays(value) DATEADD(giorno, @value, @dateTime)
dateTime.AddHours(value) DATEADD(ora, @value, @dateTime))
dateTime.AddMilliseconds(value) DATEADD(millisecondo, @value, @dateTime)
dateTime.AddMinutes(value) DATEADD(minuto, @value, @dateTime))
dataOra.AggiungiMesi(mesi) DATEADD(mese, @months, @dateTime)
dateTime.AddSeconds(value) DATEADD(secondo, @value, @dateTime))
dateTime.AddYears(value) DATEADD(year, @value, @dateTime))
dateTime.Date (Funzione per ottenere la data) CONVERT(date, @dateTime)
dateTime.Giorno DATEPART(day, @dateTime)
dateTime.DayOfYear (Giorno dell'anno) DATEPART(dayofyear, @dateTime)
dateTime.Hour DATEPART(hour, @dateTime)
dateTime.Microsecond DATEPART(microsecondo, @dateTime) % 1000 EF Core 10.0
dateTime.Millisecond DATEPART(millisecondi, @dateTime)
dateTime.Minute DATEPART(minuto, @dateTime)
dateTime.Month DATEPART(month, @dateTime)
dateTime.Nanosecond DATEPART(nanosecondo, @dateTime) % 1000 EF Core 10.0
dateTime.Second DATEPART(secondo, @dateTime)
dateTime.TimeOfDay CONVERT(time, @dateTime)
dateTime.Year DATEPART(anno, @dateTime)
DateTimeOffset.Now SYSDATETIMEOFFSET()
DateTimeOffset.UtcNow SYSUTCDATETIME()
dateTimeOffset.AddDays(days) DATEADD(giorno, @days, @dateTimeOffset)
dateTimeOffset.AddHours(hours) DATEADD(ora, @hours, @dateTimeOffset))
dateTimeOffset.AddMilliseconds(milliseconds) - Questo metodo aggiunge un numero specificato di millisecondi all'oggetto dateTimeOffset. DATEADD(millisecondo, @milliseconds, @dateTimeOffset)
dateTimeOffset.AddMinutes(minutes) DATEADD(minuto, @minutes, @dateTimeOffset))
dateTimeOffset.AddMonths(months) DATEADD(mese, @months, @dateTimeOffset))
dateTimeOffset.AddSeconds(aggiungiSecondi) DATEADD(secondo, @seconds, @dateTimeOffset))
dateTimeOffset.AddYears(years) DATEADD(year, @years, @dateTimeOffset))
dateTimeOffset.Date CONVERT(date, @dateTimeOffset)
dateTimeOffset.Day DATEPART(day, @dateTimeOffset)
dateTimeOffset.DayOfYear // Giorno dell'anno DATEPART(dayofyear, @dateTimeOffset)
dateTimeOffset.Hour DATEPART(hour, @dateTimeOffset)
dateTimeOffset.Microsecond DATEPART(microsecondo, @dateTimeOffset) % 1000 EF Core 10.0
dateTimeOffset.Millisecond DATEPART(millisecondi, @dateTimeOffset)
dateTimeOffset.Minute DATEPART(minuto, @dateTimeOffset)
dateTimeOffset.Month DATEPART(month, @dateTimeOffset)
dateTimeOffset.Nanosecond DATEPART(nanosecondo, @dateTimeOffset) % 1000 EF Core 10.0
dateTimeOffset.Second DATEPART(secondo, @dateTimeOffset)
dateTimeOffset.TimeOfDay CONVERT(time, @dateTimeOffset)
dateTimeOffset.ToUnixTimeSeconds() DATEDIFF_BIG(second, '1970-01-01T00:00:00.0000000+00:00', @dateTimeOffset)
dateTimeOffset.ToUnixTimeMilliseconds() DATEDIFF_BIG(millesimo di secondo, '1970-01-01T00:00:00.0000000+00:00', @dateTimeOffset)
dateTimeOffset.Year DATEPART(anno, @dateTimeOffset)
DateOnly.FromDateTime(dateTime) CONVERT(date, @dateTime)
dateOnly.AddDays(value) DATEADD(giorno, @value, @dateOnly)
dateOnly.AggiungiMesi(months) DATEADD(mese, @months, @dateOnly)
dateOnly.AddYears(value) DATEADD(year, @value, @dateOnly))
dateOnly.Giorno DATEPART(day, @dateOnly)
dateOnly.GiornoDellAnno DATEPART(dayofyear, @dateOnly)
dateOnly.Month DATEPART(month, @dateOnly)
dateOnly.Anno DATEPART(anno, @dateOnly)
dateOnly.DayNumber DATEDIFF(giorno, '0001-01-01', @dateOnly) EF Core 10.0
EF. Functions.AtTimeZone(dateTime, timeZone) @dateTime FUSO ORARIO @timeZone
EF.Functions.DateDiffDay(start, end) DATEDIFF(giorno, @start, @end)
EF.Functions.DateDiffHour(start, end) DATEDIFF(ora, @start, @end)
EF.Functions.DateDiffMicrosecond(start, end) DATEDIFF(microsecondi, @start, @end)
EF.Functions.DateDiffMillisecond(start, end) DATEDIFF(millisecondo, @start, @end)
EF.Functions.DateDiffMinute(start, end) DATEDIFF(minute, @start, @d2))
EF.Functions.DateDiffMonth(start, end) DATEDIFF(month, @start, , @end)
EF.Functions.DateDiffNanosecond(start, end) DATEDIFF(nanosecondo, @start, @end)
EF.Functions.DateDiffSecond(start, end) DATEDIFF(secondo, @start, @end)
EF.Functions.DateDiffWeek(start, end) DATEDIFF(week, @start, @end))
EF.Functions.DateDiffYear(start, end) DATEDIFF(anno, @start, @end)
EF.Functions.DateFromParts(year, month, day) DATEFROMPARTS(@year, @month, @day)
EF.Functions.DateTime2FromParts(year, month, day, ...) DATETIME2FROMPARTS(@year, @month, @day, ...)
EF.Functions.DataOraDaParti(anno, mese, giorno, ...) DATETIMEFROMPARTS(@year, @month, @day, ...)
EF.Functions.DateTimeOffsetFromParts(year, month, day, ...) DATETIMEOFFSETFROMPARTS(@year, @month, @day, ...)
EF. Functions.IsDate(expression) ISDATE(@expression)
EF.Functions.SmallDateTimeFromParts(year, month, day, ...) SMALLDATETIMEFROMPARTS(@year, @month, @day, ...)
EF.Funzioni.TimeFromParts(hour, minute, second, ...) TIMEFROMPARTS(@hour, @minute, @second, ...)
timeOnly.AddHours(value) DATEADD(ora, @value, @timeOnly))
timeOnly.AddMinutes(value) DATEADD(minuto, @value, @timeOnly))
timeOnly.Hour DATEPART(hour, @timeOnly)
timeOnly.IsBetween(start, end) @timeOnly >= @start AND @timeOnly<@end
timeOnly.Microsecond DATEPART(microsecondo, @timeOnly) % 1000 EF Core 10.0
timeOnly.Millisecond DATEPART(millisecondi, @timeOnly)
timeOnly.Minute DATEPART(minute, @timeOnly)
timeOnly.Nanosecond DATEPART(nanosecondo, @timeOnly) % 1000 EF Core 10.0
timeOnly.Second DATEPART(second, @timeOnly)
timeSpan.Hours DATEPART(hour, @timeSpan)
intervalloDiTempo.Microsecondo DATEPART(microsecondo, @timeSpan) % 1000 EF Core 10.0
timeSpan.Milliseconds DATEPART(millisecondi, @timeSpan)
timeSpan.Minutes DATEPART(minuto, @timeSpan)
timeSpan.Nanosecond DATEPART(nanosecondo, @timeSpan) % 1000 EF Core 10.0
timeSpan.Seconds DATEPART(secondo, @timeSpan)

Funzioni numeriche

.NET SQL Aggiunta in
double.DegreesToRadians(x) RADIANS (@x)
double.RadiansToDegrees(x) DEGREES (@x)
EF.Functions.Random() RAND()
Math.Abs(valore) ABS(@valore)
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, decimals) ROUND(@d, @decimals)
Math.Sign(valore) SIGN(@valore)
Math.Sin(a) SIN(@a)
Math.Sqrt(d) SQRT(@d)
Math.Tan(a) TAN(@a)
Math.Truncate(d) ROUND(@d, 0, 1)

Suggerimento

Oltre ai metodi elencati qui, vengono tradotte anche le implementazioni matematiche generiche corrispondenti e i metodi MathF. Ad esempio, Math.Sin, MathF.Sin, double.Sin, e float.Sin tutti eseguono il mapping alla funzione SIN in SQL.

Funzioni di stringa

.NET SQL Aggiunta in
EF.Functions.Collate(operando, regole di confronto) @operand COLLATE @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 COME @pattern
EF.Functions.Like(matchExpression, pattern, escapeCharacter) @matchExpression LIKE @pattern ESCAPE @escapeCharacter
stringa.Compare(strA, strB) CASO QUANDO @strA = @strB POI 0 ... FINE
stringa.Concat(str0, str1) @str0 + @str1
string.IsNullOrEmpty(value) @value È NULL O @value COME N''
string.IsNullOrWhiteSpace(value) @value È NULL O @value = N''
corda. Join(", ", new [] { x, y, z}) CONCAT_WS(N', ', @x, @y, @z) EF Core 9.0
stringValue.CompareTo(strB) CASO QUANDO @stringValue = @strB POI 0 ... FINE
stringValue.Contains(valore) @stringValue LIKE N'%' + @value + N'%'
stringValue.EndsWith(valore) @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)

Funzioni varie

.NET SQL Aggiunta in
enumValue.HasFlag(flag) @enumValue & @flag = @flag
Guid.NewGuid() NEWID()
nullable.GetValueOrDefault() COALESCE(@nullable, 0)
Nullable.GetValueOrDefault(defaultValue) COALESCE(@nullable, @defaultValue)

Nota

Alcune traduzioni SQL sono state semplificate a scopo illustrativo. L'effettivo SQL è più complesso per gestire un intervallo più ampio di valori.

Vedi anche