Megosztás a következőn keresztül:


Az SQLite EF Core-szolgáltató függvényleképezései

Ez az oldal bemutatja, hogy a .NET tagok hogyan fordítódnak le SQL függvényekre az SQLite szolgáltató használatakor.

Összesítő függvények

.NET SQL Hozzáadva
csoport.Átlag(x => x.Tulajdonság) AVG(tulajdonság)
csoport.átlag(x => x.DecimalProperty) ef_avg(DecimalProperty) EF Core 9.0
csoport. Darabszám() DARAB(*)
csoport. LongCount() DARAB(*)
csoport.Max(x => x.Tulajdonság) MAX(tulajdonság)
csoport.Min(x => x.Property) MIN(Tulajdonság)
csoport.Sum(x => x.Tulajdonság) SUM(Tulajdonság)
csoport.Sum(x => x.DecimalProperty) ef_sum(DecimalProperty) EF Core 9.0
karakterlánc.Concat(csoport.Select(x => x.Property)) group_concat(Tulajdonság; '')
string.Join(elválasztó, csoport.Select(x => x.Property)) group_concat(Tulajdonság, @separator))

Bináris függvények

.NET SQL Hozzáadva
bytes.Contains(érték) instr(@bytes; char(@value)) > 0
Bájt. Hosszúság hossz(@bytes)
bytes.SequenceEqual(second) @bytes = @second
EF.Functions.Hex(bytes) hexa(@bytes)
EF. Functions.Substr(bájt; startIndex) substr(@bytes, @startIndex)
EF. Functions.Substr(bájt, startIndex, hossz) substr(@bytes, @startIndex, @length)
EF.Functions.Unhex(érték) unhex(@value)
EF.Functions.Unhex(érték, ignoráltKarakterek) unhex(@value, @ignoreChars)

Konverziós függvények

.NET SQL
boolValue.ToString() CAST(@boolValue AS TEXT)
byteValue.ToString() CAST(@byteValue AS TEXT)
bytes.ToString() Az SQL utasítás: CAST(@bytes AS TEXT) konvertálja a bájtokat szöveggé.
charValue.ToString() CAST(@charValue AS TEXT)
dateTime.ToString() CAST(@dateTime AS TEXT)
dateTimeOffset.ToString() CAST(@dateTimeOffset AS TEXT)
decimalValue.ToString() CAST(@decimalValue AS TEXT)
doubleValue.ToString() CAST(@doubleValue AS TEXT)
floatValue.ToString() CAST(@floatValue AS TEXT)
guid.ToString() CAST(@guid AS TEXT)
intValue.ToString() CAST(@intValue AS TEXT)
longValue.ToString() CAST(@longValue AS TEXT)
sbyteValue.ToString() CAST(@sbyteValue AS TEXT)
shortValue.ToString() CAST(@shortValue AS TEXT)
timeSpan.ToString() CAST(@timeSpan AS TEXT)
uintValue.ToString() CAST(@uintValue AS TEXT)
ushortValue.ToString() CAST(@ushortValue AS TEXT)

Dátum- és időfüggvények

.NET SQL Hozzáadva
dateOnly.AddDays(érték) date(@dateOnly, @value || ' napok')
dateOnly.AddMonths(hónapok) date(@dateOnly, @months || " hónapok")
dateOnly.AddYears(value) date(@dateOnly; @value || ' évek')
csakDátum.nap strftime('%d", @dateOnly)
csakDátum.HétNapja strftime('%w", @dateOnly)
dateOnly.DayOfYear strftime('%j", @dateOnly)
DateOnly.FromDateTime(dateTime) date(@dateTime)
dateOnly.Hónap strftime('%m", @dateOnly)
dateOnly.Év strftime('%Y", @dateOnly)
dateOnly.DayNumber CAST(julianday(@dateOnly) - julianday('0001-01-01') AS INTEGER) EF Core 10.0
DateTime.Now datetime('now', 'localtime')
DateTime.Today datetime('now', 'localtime', 'start of day')
DateTime.UtcNow datetime('now')
dateTime.AddDays(érték) datetime(@dateTime, @value || ' napok')
dateTime.AddHours(value) datetime(@dateTime, @d || ' óra')
dateTime.AddMilliseconds(value) datetime(@dateTime, (@value / 1000,0) || ' másodperc')
dateTime.AddMinutes(érték) datetime(@dateTime, @value || ' perc')
dateTime.AddMonths(hónapok) datetime(@dateTime, @months || ' hónapok')
dateTime.AddSeconds(value) datetime(@dateTime, @value || " másodperc")
dateTime.AddTicks(érték) datetime(@dateTime, (@value / 10000000.0) || ' másodperc')
dateTime.AddYears(érték) datetime(@dateTime, @value || ' év')
dateTime.Date datetime(@dateTime; "nap kezdete")
dateTime.Day strftime('%d", @dateTime)
dateTime.DayOfWeek strftime('%w", @dateTime)
dateTime.DayOfYear strftime('%j", @dateTime)
dateTime.óra strftime('%H", @dateTime)
dateTime.Milliszekundum (strftime('%f', @dateTime) * 1000) % 1000
dateTime.Minute strftime('%M", @dateTime)
dateTime.Hónap strftime('%m", @dateTime)
dateTime.Second strftime('%S", @dateTime)
dateTime.Ticks (julianday(@dateTime) - julianday('0001-01-01 00:00:00')) * 86400000000
dateTime.TimeOfDay time(@dateTime)
dateTime.Year strftime('%Y", @dateTime)

Megjegyzés:

Néhány SQL-t egyszerűsítettünk illusztrációs célokra. A tényleges SQL összetettebb az értékek szélesebb körének kezeléséhez.

Numerikus függvények

.NET SQL Hozzáadva
-decimalValue ef_negate(@decimalValue)
decimalValue – d ef_add(@decimalValue, ef_negate(@d))
decimalValue * d ef_multiply(@decimalValue, @d)
decimalValue /d ef_divide(@decimalValue, @d)
decimalValue % d ef_mod(@decimalValue, @d)
decimalValue + d ef_add(@decimalValue, @d)
decimalValue < d ef_compare(@decimalValue, @d)< 0
decimalValue <= d ef_compare(@decimalValue; @d)<= 0
decimalValue > d ef_compare(@decimalValue, @d)> 0
decimalValue >= d ef_compare(@decimalValue; @d)>= 0
double.DegreesToRadians(fok) radián(@degrees)
Double.RadiansToDegrees(radián) fok(@dradians)
doubleValue % d mod(@doubleValue, @d)
EF.Functions.Random() abs(random() / 922337203685478000.0)
Math.Abs(érték) abs(@value)
Math.Acos(érték) acos(@value)
Math.Acosh(d) acosh(@d)
Math.Asin(d) asin(@d)
Math.Asinh(d) asinh(@d)
Math.Atan(d) atan(@d)
Math.Atan2(y; x) atan2(@y, @x)
Math.Atanh(d) atanh(@d)
Math.Ceiling(d) plafon(@d)
Math.Cos(d) cos(@d)
Math.Cosh(érték) cosh(@value)
Math.Exp(d) exp(@d)
Math.Floor(d) padló(@d)
Math.Log(d) ln(@d) EF Core 8.0
Math.Log(a, newBase) log(@newBase, @a) EF Core 8.0
Math.Log2(x) log2(@x) EF Core 8.0
Math.Log10(d) log10(@d) EF Core 8.0
Math.Max(val1; val2) max(@val1, @val2)
Math.Min(val1; val2) min(@val1; @val2)
Math.Pow(x; y) pow(@x, @y) EF Core 8.0
Math.Round(d) kerek(@d)
Math.Round(d; számjegyek) kerek(@d, @digits)
Math.Sign(d) sign(@d) EF Core 8.0
Math.Sin(a) sin(@a) EF Core 8.0
Math.Sinh(érték) sinh(@value) EF Core 8.0
Math.Sqrt(d) sqrt(@d) EF Core 8.0
Math.Tan(a) tan(@a) EF Core 8.0
Math.Tanh(érték) tanh(@value) EF Core 8.0
Math.Truncate(d) trunc(@d) EF Core 8.0

Jótanács

Az itt felsorolt módszerek mellett a megfelelő általános matematikai implementációkat és MathF metódusokat is lefordítjuk. Például a Math.Sin, MathF.Sin, double.Sinés float.Sin mind az SQL sin függvényére való leképezést jelentik.

Jótanács

Az előtaggal ef_ ellátott SQL-függvényeket az EF Core hozza létre.

Karakterlánc függvények

.NET SQL
char.ToLower(c) lower(@c)
char.ToUpper(c) upper(@c)
EF.Functions.Collate(operandus, kolláció) @operand KIEGÉSZÍT @collation
EF. Functions.Glob(matchExpression, pattern) @matchExpression GLOB @pattern
EF. Functions.Like(matchExpression, pattern) @matchExpression SZERET @pattern
EF. Functions.Like(matchExpression, pattern, escapeCharacter) @matchExpression MINT @pattern KIMENEKÍTÉS @escapeCharacter
Regex.IsMatch(bemenet, minta) @input REGEXP @pattern
húr. Compare(strA, strB) ESET AMIKOR @strA = @strB AKKOR 0 ... END
karakterlánc.Concat(str0, str1) @str0 || @str1
string.IsNullOrEmpty(value) @value NULL VAGY @value = ''
sztring.IsNullOrWhiteSpace(érték) @value NULL VAGY levágás(@value) = ''
stringValue.CompareTo(strB) ESET AMIKOR @stringValue = @strB AKKOR 0 ... END
stringValue.Contains(value) instr(@stringValue, @value)> 0
stringValue.EndsWith(value) @stringValue LIKE '%' || @value
stringValue.FirstOrDefault() substr(@stringValue, 1, 1)
stringValue.IndexOf(value) instr(@stringValue, @value) - 1
stringValue.LastOrDefault() substr(@stringValue, length(@stringValue), 1)
stringValue.Length hossz(@stringValue)
stringValue.Replace(oldValue, newValue) replace(@stringValue, @oldValue, @newValue))
stringValue.StartsWith(value) @stringValue LIKE @value || '%'
stringValue.Substring(startIndex) substr(@stringValue, @startIndex + 1)
stringValue.Substring(startIndex, length) substr(@stringValue, @startIndex + 1, @length)
stringValue.ToLower() lower(@stringValue)
stringValue.ToUpper() upper(@stringValue)
stringValue.Trim() levág(@stringValue)
stringValue.Trim(trimChar) levágás(@stringValue, @trimChar)
stringValue.TrimEnd() rtrim(@stringValue) // Eltávolítja a szóközöket a szöveg végéről
stringValue.TrimEnd(trimChar) rtrim(@stringValue, @trimChar)
stringValue.TrimStart() ltrim(@stringValue)
stringValue.TrimStart(trimChar) ltrim(@stringValue, @trimChar)

Megjegyzés:

Néhány SQL-t egyszerűsítettünk illusztrációs célokra. A tényleges SQL összetettebb az értékek szélesebb körének kezeléséhez.

Egyéb függvények

.NET SQL
gyűjtemény. Contains(item) @item BAN @collection
enumValue.HasFlag(flag) @enumValue & @flag = @flag
nullable.GetValueOrDefault() coalesce(@nullable; 0)
Null-értékellhető.GetValueOrDefault(alapértelmezettÉrték) coalesce(@nullable, @defaultValue)

Lásd még

  • térbeli függvényleképezések