此頁面會顯示使用 SQLite 提供者時,哪些 .NET 成員會轉譯成哪些 SQL 函式。
彙總函數
| .NET | SQL | 已新增 |
|---|---|---|
| 群。Average(x => x.Property) | AVG(屬性) | |
| 群。Average(x => x.DecimalProperty) | ef_avg(DecimalProperty) | EF Core 9.0 |
| 群。Count() | COUNT(*) | |
| 群。LongCount() | COUNT(*) | |
| 群。Max(x => x.Property) | MAX(屬性) | |
| 群。Min(x => x.Property) | MIN(屬性) | |
| 群。Sum(x => x.Property) | SUM(屬性) | |
| 群。Sum(x => x.DecimalProperty) | ef_sum(DecimalProperty) | EF Core 9.0 |
| 字串。Concat(group.Select(x => x.Property)) | group_concat(Property, '') | |
| 字串。Join(分隔符,群組。Select(x => x.Property)) | group_concat(屬性, @separator) |
二進位函式
| .NET | SQL | 已新增 |
|---|---|---|
| 位元組。Contains(value) | instr(@bytes, char(@value)) > 0 | |
| 位元組。長度 | length(@bytes) | |
| 位元組。SequenceEqual(second) | @bytes = @second | |
| 英 孚。Functions.Hex(bytes) | 十六進位(@bytes) | |
| 英 孚。Functions.Substr(bytes, startIndex) | substr(@bytes, @startIndex) | |
| 英 孚。Functions.Substr(bytes, startIndex, length) | substr(@bytes, , @startIndex@length) | |
| 英 孚。Functions.Unhex(value) | unhex(@value) | |
| 英 孚。Functions.Unhex(value, ignoreChars) | unhex(@value, @ignoreChars) |
轉換函數
| .NET | SQL |
|---|---|
| boolValue.ToString() | CAST(@boolValue AS TEXT) |
| byteValue.ToString() | CAST(@byteValue AS TEXT) |
| 位元組。ToString() | CAST(@bytes AS TEXT) |
| 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) |
日期和時間函式
| .NET | SQL | 已新增 |
|---|---|---|
| dateOnly.AddDays(value) | date(@dateOnly, @value ||'days') | |
| dateOnly.AddMonths(months) | date(@dateOnly, @months ||'months') | |
| dateOnly.AddYears(value) | date(@dateOnly, @value ||'years') | |
| dateOnly.Day | strftime('%d', @dateOnly) | |
| dateOnly.DayOfWeek | strftime('%w', @dateOnly) | |
| dateOnly.DayOfYear | strftime('%j', @dateOnly) | |
| DateOnly.FromDateTime(dateTime) | date(@dateTime) | |
| dateOnly.Month | strftime('%m', @dateOnly) | |
| dateOnly.Year | strftime('%Y', @dateOnly) | |
| dateOnly.DayNumber | CAST(julianday(@dateOnly) - julianday('0001-01-01') 轉換為整數) | EF 核心 10.0 |
| DateTime.Now | datetime('now', 'localtime') | |
| DateTime.Today | datetime('now', 'localtime', 'start of day') | |
| DateTime.UtcNow | datetime('now') | |
| dateTime.AddDays(value) | datetime(@dateTime, @value ||'days') | |
| dateTime.AddHours(value) | datetime(@dateTime, @d ||' hours') | |
| dateTime.AddMilliseconds(value) | datetime(@dateTime, (@value / 1000.0) ||' seconds') | |
| dateTime.AddMinutes(value) | datetime(@dateTime, @value ||'minutes') | |
| dateTime.AddMonths(month) | datetime(@dateTime, @months ||'months') | |
| dateTime.AddSeconds(value) | datetime(@dateTime, @value ||' seconds') | |
| dateTime.AddTicks(value) | datetime(@dateTime, (@value / 10000000.0) ||' seconds') | |
| dateTime.AddYears(value) | datetime(@dateTime, @value ||'years') | |
| dateTime.Date | datetime(@dateTime,'開始日') | |
| 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')) * 864000000000 | |
| dateTime.TimeOfDay | time(@dateTime) | |
| dateTime.Year | strftime('%Y', @dateTime) |
注意
為了說明目的,某些 SQL 已簡化。 實際 SQL 較複雜,可處理更廣泛的值。
數值函數
| .NET | SQL | 已新增 |
|---|---|---|
| -decimalValue | ef_negate(@decimalValue) | |
| 十進制值 - d | ef_add(@decimalValue,ef_negate(@d)) | |
| 十進制值 * d | ef_multiply(@decimalValue, @d) | |
| 十進制值 / d | ef_divide(@decimalValue, @d) | |
| decimalValue % d | ef_mod(@decimalValue, @d) | |
| 十進制值 + d | ef_add(@decimalValue, @d) | |
| 十進制值 < d | ef_compare(@decimalValue,0 @d)< | |
| 十進制值 <= d | ef_compare(@decimalValue, @d)<= 0 | |
| 十進制值 > d | ef_compare(@decimalValue,0 @d)> | |
| 十進制值 >= d | ef_compare(@decimalValue, @d)>= 0 | |
| 雙。DegreesToRadian(degrees) | 弧度(@degrees) | |
| 雙。RadiansToDegrees(radians) | degrees(@dradians) | |
| doubleValue % d | mod(@doubleValue, @d) | |
| EF.Functions.Random() | abs(random() / 9223372036854780000.0) | |
| Math.Abs(value) | abs(@value) | |
| Math.Acos(value) | acos(@value) | |
| 數學.阿科什(d) | acosh(@d) | |
| Math.Asin(d) | asin(@d) | |
| Math.Asinh(d) | asinh(@d) | |
| Math.Atan(d) | 阿丹(@d) | |
| 數學 Atan2(y, x) | atan2(@y, @x) | |
| Math.Atanh(d) | atanh(@d) | |
| Math.Ceiling(d) | 天花板(@d) | |
| Math.Cos(d) | cos(@d) | |
| Math.Cosh(value) | 科什(@value) | |
| Math.Exp(d) | exp(@d) | |
| Math.Floor(d) | 地板(@d) | |
| Math.Log(d) | ln(@d) | EF 核心 8.0 |
| Math.Log(a, 新基數) | log(@newBase, @a) | EF 核心 8.0 |
| Math.Log2(x) | log2(@x) | EF 核心 8.0 |
| Math.Log10(d) | log10(@d) | EF 核心 8.0 |
| Math.Max(val1, val2) | max(@val1, @val2) | |
| Math.Min(val1, val2) | min(@val1, @val2) | |
| 數學 Pow(x, y) | pow(@x, @y) | EF 核心 8.0 |
| Math.Round(d) | round(@d) | |
| Math.Round(d, digits) | round(@d, @digits) | |
| Math.Sign(d) | sign(@d) | EF 核心 8.0 |
| Math.Sin(a) | sin(@a) | EF 核心 8.0 |
| Math.Sinh(value) | sinh(@value) | EF 核心 8.0 |
| Math.Sqrt(d) | sqrt(@d) | EF 核心 8.0 |
| Math.Tan(a) | tan(@a) | EF 核心 8.0 |
| Math.Tanh(value) | tanh(@value) | EF 核心 8.0 |
| Math.Truncate(d) | trunc(@d) | EF 核心 8.0 |
提示
除了此處所列的方法之外,還翻譯了對應的 泛型數學方法的 實現和 MathF 方法。 舉例來說,Math.Sin、MathF.Sin、double.Sin和 float.Sin 都對應至 SQL 的 sin 函式。
提示
EF Core 會建立前面加上 ef_ 的 SQL 函式。
字串函數
| .NET | SQL |
|---|---|
| 煳。ToLower(c) | lower(@c) |
| 煳。ToUpper(c) | upper(@c) |
| 英 孚。Functions.Collate(操作數、定序) | @operand 整理 @collation |
| 英 孚。Functions.Glob(matchExpression, pattern) | @matchExpression 全球 @pattern |
| 英 孚。Functions.Like(matchExpression, pattern) | @matchExpression 喜歡 @pattern |
| 英 孚。Functions.Like(matchExpression, pattern, escapeCharacter) | @matchExpression 喜歡 @pattern 逃脫 @escapeCharacter |
| Regex.IsMatch(輸入,模式) | @input 正則表達式 @pattern |
| 字串。Compare(strA, strB) | 案例當時 @strA = @strB 為 0 ...結束 |
| 字串.Concat(str0, str1) | @str0 || @str1 |
| 字串。IsNullOrEmpty(value) | @value 是 NULL 或 @value = '' |
| 字串。IsNullOrWhiteSpace(value) | @value IS NULL OR trim(@value) = '' |
| stringValue.CompareTo(strB) | 案例當時 @stringValue = @strB 為 0 ...結束 |
| stringValue.Contains(value) | instr(@stringValue, @value)> 0 |
| stringValue.EndsWith(value) | @stringValue 喜歡 '%' || @value |
| stringValue.FirstOrDefault() | substr(@stringValue, 1, 1) |
| stringValue.IndexOf(value) | instr(@stringValue, @value) - 1 |
| stringValue.LastOrDefault() | substr(@stringValue,長度(@stringValue),1) |
| stringValue.Length | length(@stringValue) |
| stringValue.Replace(舊值,新值) | replace(@stringValue, , @oldValue@newValue) |
| stringValue.StartsWith(value) | @stringValue LIKE @value ||'%' |
| stringValue.Substring(startIndex) | substr(@stringValue, @startIndex + 1) |
| stringValue.Substring(startIndex, 長度) | 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) |
注意
為了說明目的,某些 SQL 已簡化。 實際 SQL 較複雜,可處理更廣泛的值。
其他函式
| .NET | SQL |
|---|---|
| collection.Contains(item) | @item 在 @collection |
| enumValue.HasFlag(flag) | @enumValue & @flag = @flag |
| 空。GetValueOrDefault() | 聯合(@nullable, 0) |
| 空。GetValueOrDefault(defaultValue) | coalesce(@nullable, @defaultValue) |