Pemetaan Fungsi Penyedia Inti SQLite EF

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

Fungsi agregat

Untuk informasi umum tentang menggunakan fungsi agregat dalam kueri, lihat Fungsi agregat.

.NET SQL Ditambahkan dalam
kelompok.average(x => x.Property) AVG(Property)
kelompok.Rata-rata(x => x.DecimalProperty) ef_avg(DecimalProperty) EF Core 9.0
kelompok. Count() COUNT(*)
kelompok. LongCount() COUNT(*)
grup.Max(x => x.Property) MAX(Property)
kelompok.Min(x => x.Property) MIN(Properti)
kelompok.Sum(x => x.Property) JUMLAH(Properti)
kelompok.Jumlah(x => x.DecimalProperty) ef_sum(DecimalProperty) EF Core 9.0
String.Concat(group.Select(x => x.Property)) group_concat(Properti, '')
string.Concat(group.OrderBy(x => x.Other).Select(x => x.Property)) group_concat(Property, '' ORDER BY Other) EF Core 11.0
tali. Gabung(pemisah, grup. Pilih(x => x.Property)) group_concat(Properti, @separator)
string.Join(separator, group.OrderBy(x => x.Other).Select(x => x.Property)) group_concat(Property, @separator ORDER BY Other) EF Core 11.0

Fungsi biner

.NET SQL Ditambahkan dalam
Byte. Contains(value) instr(@bytes, char(@value)) > 0
Byte. Panjangnya length(@bytes)
bytes.SequenceEqual(second) @bytes = @second
EF.Functions.Hex(byte) hex(@bytes)
EF.Functions.Substr(bytes, startIndex) substr(@bytes, @startIndex)
EF. Functions.Substr(byte, startIndex, length) substr(@bytes, @startIndex, @length)
EF.Functions.Unhex(value) unhex(@value)
EF.Functions.Unhex(value, ignoreChars) unhex(@value, @ignoreChars)

Fungsi konversi

.NET SQL
boolValue.ToString() CAST(@boolValue sebagai teks)
byteValue.ToString() (mengonversi byteValue ke String) CAST(@byteValue SEBAGAI TEKS)
bytes.ToString() CAST(@bytes SEBAGAI TEKS)
charValue.ToString() (Mengubah nilai karakter menjadi string) CAST(@charValue SEBAGAI teks)
dateTime.ToString() CAST(@dateTime SEBAGAI TEKS)
dateTimeOffset.ToString() UBAH(@dateTimeOffset MENJADI TEKS)
decimalValue.ToString() CAST(@decimalValue SEBAGAI TEKS)
doubleValue.ToString() CAST(@doubleValue SEBAGAI TEKS)
floatValue.ToString() CAST(@floatValue SEBAGAI TEKS)
Guid. ToString() CAST(@guid SEBAGAI TEKS)
intValue.ToString() CAST(@intValue sebagai teks)
longValue.ToString() CAST(@longValue SEBAGAI TEKS)
sbyteValue.ToString() CAST(@sbyteValue SEBAGAI TEKS)
shortValue.ToString() CAST(@shortValue SEBAGAI TEKS)
timeSpan.ToString() CAST(@timeSpan SEBAGAI TEKS)
uintValue.ToString() CAST(@uintValue SEBAGAI TEKS)
ushortValue.ToString() CAST(@ushortValue AS TEXT)

Fungsi tanggal dan waktu

.NET SQL Ditambahkan dalam
dateOnly.AddDays(value) date(@dateOnly, @value || ' hari')
dateOnly.AddMonths(bulan) date(@dateOnly, @months || ' bulan')
dateOnly.AddYears(value) date(@dateOnly, @value || ' tahun')
tanggalHanya.Hari strftime('%d', @dateOnly)
tanggalSaja.HariDalamMinggu strftime('%w', @dateOnly) )
dateOnly.DayOfYear strftime('%j', @dateOnly)
DateOnly.FromDateTime(dateTime) tanggal(@dateTime)
dateOnly.Month strftime('%m', @dateOnly)
dateOnly.Tahun strftime('%Y', @dateOnly)
dateOnly.DayNumber CAST(julianday(@dateOnly) - julianday('0001-01-01') AS INTEGER) // Menghitung jumlah hari dari 1 Januari 0001 hingga tanggal yang ditentukan. EF Core 10.0
DateTime.Now datetime('now', 'localtime')
DateTime.Today datetime('sekarang', 'waktu lokal', 'awal hari')
DateTime.UtcNow datetime('now')
dateTime.AddDays(value) datetime(@dateTime, @value || ' hari')
dateTime.AddHours(value) datetime(@dateTime, @d || ' jam')
dateTime.AddMilliseconds(value) datetime(@dateTime, (@value / 1000.0) || ' detik')
dateTime.AddMinutes(value) datetime(@dateTime, @value || ' menit')
dateTime.AddMonths(bulan) datetime(@dateTime, @months || ' bulan')
dateTime.AddSeconds(value) datetime(@dateTime, @value || ' detik')
dateTime.AddTicks(value) datetime(@dateTime, (@value / 10000000.0) || ' detik')
dateTime.AddYears(value) datetime(@dateTime, @value || ' tahun')
dateTime.Date datetime(@dateTime, 'awal hari')
dateTime.Day strftime('%d', @dateTime)
dateTime.DayOfWeek strftime('%w', @dateTime) )
dateTime.DayOfYear strftime('%j', @dateTime)
dateTime.Hour strftime('%H', @dateTime)
dateTime.Millisecond (strftime('%f', @dateTime) * 1000) % 1000
dateTime.Minute strftime('%M', @dateTime)
dateTime.Month strftime('%m', @dateTime)
dateTime.Second strftime('%S', @dateTime)
dateTime.Ticks (julianday(@dateTime) - julianday('0001-01-01 00:00:00')) * 8640000000000
dateTime.TimeOfDay time(@dateTime)
dateTime.Year strftime('%Y', @dateTime)

Catatan

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

Fungsi numerik

.NET SQL Ditambahkan dalam
-nilaiDesimal 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
dobel. DegreesToRadians(derajat) radian (@degrees)
double.RadiansToDegrees(radians) derajat(@dradians)
doubleValue % d mod(@doubleValue, @d)
EF.Functions.Random() abs(random() / 9223372036854780000.0)
Math.Abs(value) abs(@value)
Math.Acos(value) 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) langit-langit (@d)
Math.Cos(d) cos(@d)
Math.Cosh(value) cosh(@value)
Math.Exp(d) exp(@d)
Math.Floor(d) floor(@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) round(@d)
Math.Round(d, digit) round(@d, @digits)
Math.Sign(d) sign(@d) EF Core 8.0
Math.Sin(a) sin(@a) EF Core 8.0
Math.Sinh(value) 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(value) tanh(@value) EF Core 8.0
Math.Truncate(d) trunc(@d) EF Core 8.0

Petunjuk

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

Petunjuk

Fungsi SQL yang diawali dengan ef_ dibuat oleh EF Core.

Fungsi string

.NET SQL
Char.ToLower(c) lower(@c)
char.ToUpper(c) upper(@c)
EF.Functions.Collate(operand, collation) @operand SUSUN @collation
EF.Functions.Glob(matchExpression, pattern) @matchExpression GLOB @pattern
EF.Functions.Like(matchExpression, pattern) @matchExpression SUKA @pattern
EF.Functions.Like(matchExpression, pattern, escapeCharacter) @matchExpression SEPERTI @pattern ESCAPE @escapeCharacter
Regex.IsMatch(input, pattern) @input REGEXP @pattern
string.Compare(strA, strB) KASUS KETIKA @strA = @strB KEMUDIAN 0 ... UJUNG
string.Concat(str0, str1) @str0 || @str1
string.IsNullOrEmpty(value) @value ADALAH NULL ATAU @value = ''
string.IsNullOrWhiteSpace(value) @value ADALAH NULL ATAU trim(@value) = ''
stringValue.CompareTo(strB) KASUS KETIKA @stringValue = @strB KEMUDIAN 0 ... UJUNG
stringValue.Contains(value) instr(@stringValue, @value)> 0
stringValue.MengakhiriDengan(value) @stringValue SEPERTI '%' || @value
stringValue.FirstOrDefault() substr(@stringValue, 1, 1)
stringValue.IndexOf(value) instr(@stringValue, @value) - 1
stringValue.LastOrDefault() substr(@stringValue, length(@stringValue), 1)
stringValue.Length length(@stringValue)
stringValue.Replace(oldValue, newValue) replace(@stringValue, @oldValue, @newValue)
stringValue.StartsWith(value) @stringValue SEPERTI @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() trim(@stringValue)
stringValue.Trim(trimChar) trim(@stringValue, @trimChar)
stringValue.TrimEnd() rtrim(@stringValue)
stringValue.TrimEnd(trimChar) rtrim(@stringValue, @trimChar)
stringValue.TrimStart() ltrim(@stringValue)
stringValue.TrimStart(trimChar) ltrim(@stringValue, @trimChar)

Catatan

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

Fungsi lain

.NET SQL
koleksi. Berisi(item) @item DI @collection
enumValue.HasFlag(flag) @enumValue & @flag = @flag
"nullable.GetValueOrDefault()" coalesce(@nullable, 0)
nullable.GetValueOrDefault(defaultValue) coalesce(@nullable, @defaultValue)

Lihat juga