Método CLR para mapeamento de função canônica
O Entity Framework fornece um conjunto de funções canônicas que implementam funcionalidades comuns em muitos sistemas de banco de dados, como manipulação de cadeia de caracteres e funções matemáticas. Isso permite que os desenvolvedores direcionem uma ampla gama de sistemas de banco de dados. Quando chamadas a partir de uma tecnologia de consulta, como LINQ to Entities, essas funções canônicas são traduzidas para a função de armazenamento correspondente correta para o provedor que está sendo usado. Isso permite que as invocações de função sejam expressas em um formulário comum entre fontes de dados, fornecendo uma experiência de consulta consistente entre fontes de dados. Os operadores bit AND, OR, NOT e XOR também são mapeados para funções canônicas quando o operando é um tipo numérico. Para operandos booleanos, os operadores bit a bit AND, OR, NOT e XOR calculam as operações lógicas AND, OR, NOT e XOR de seus operandos. Para obter mais informações, consulte Funções canônicas.
Para cenários LINQ, as consultas no Entity Framework envolvem o mapeamento de determinados métodos CLR para métodos na fonte de dados subjacente por meio de funções canônicas. Qualquer chamada de método em uma consulta LINQ to Entities que não seja explicitamente mapeada para uma função canônica resultará em uma exceção de tempo de execução NotSupportedException sendo lançada.
Método System.String (Static) Mapping
Método System.String (static) | Função canônica |
---|---|
System.String Concat(String str0 , String str1 ) |
Concat(str0 , str1 ) |
System.String Concat(String str0 , String str1 , String str2 ) |
Concat(Concat(str0 , str1 ), str2 ) |
System.String Concat(String str0 , String str1 , String str2 , String str03 ) |
Concat(Concat(str0 , ), str2 str3 ) str1 |
Boolean Equals(String a , String b ) |
= operador |
Boolean IsNullOrEmpty(String value ) |
(IsNull(value )) OU Comprimento(value ) = 0 |
Boolean op_Equality(String a , String b ) |
= operador |
Boolean op_Inequality(String a , String b ) |
!= operador |
Microsoft.VisualBasic.Strings.Trim(Cadeia de caracteres str ) |
Guarnição(str ) |
Microsoft.VisualBasic.Strings.LTrim(Cadeia de caracteres str ) |
Ltrim(str ) |
Microsoft.VisualBasic.Strings.RTrim(Cadeia de caracteres str ) |
Rtrim(str ) |
Microsoft.VisualBasic.Strings.Len(Cadeia de caracteres expression ) |
Comprimento(expression ) |
Microsoft.VisualBasic.Strings.Left(String str , Int32 Length ) |
Esquerda(str , Length ) |
Microsoft.VisualBasic.Strings.Mid(String str , Int32 Start , Int32 Length ) |
Substring(str , Start , Length ) |
Microsoft.VisualBasic.Strings.Right (String str , Int32 Length ) |
Direita(str , Length ) |
Microsoft.VisualBasic.Strings.UCase(Cadeia de caracteres Value ) |
ToUpper(Value ) |
Microsoft.VisualBasic.Strings.LCase(Valor da cadeia de caracteres) | ToLower(Value ) |
Método System.String (Instance) Mapping
Método System.String (instance) | Função canônica | Notas |
---|---|---|
Boolean contém(String value ) |
this COMO '%value %' |
Se value não for uma constante, isso será mapeado para IndexOf(this , value ) > 0 |
Boolean EndsWith(String value ) |
this GOSTO »' %value |
Se value não for uma constante, então isso mapeia para Right(this , length(value )) = value . |
Boolean StartsWith(String value ) |
this COMO 'value %' |
Se value não for uma constante, isso será mapeado para IndexOf(this , value ) = 1. |
Duração | Comprimento(this ) |
|
Int32 IndexOf(String value ) |
IndexOf(this , value ) - 1 |
|
System.String Insert(Int32 startIndex , String value ) |
Concat(Concat(Substring(this , 1, startIndex ), value ), Substring(this , startIndex +1, Length(this ) - startIndex )) |
|
System.String Remover (Int32 startIndex ) |
Substring(this , 1, startIndex ) |
|
System.String Remover (Int32 startIndex , Int32 count ) |
Concat(Substring(this , 1, startIndex ), Substring(this , startIndex + count +1, Length(this ) - (startIndex + count ))) |
Remove(startIndex , count ) só é suportado se count for um número inteiro maior ou igual a 0. |
System.String Replace(String oldValue , String newValue ) |
Substituir(this , oldValue , newValue ) |
|
Substring System.String(Int32 startIndex ) |
Substring(this , startIndex +1, Comprimento(this ) - startIndex ) |
|
Substring System.String(Int32 startIndex , Int32 length ) |
Substring(this , startIndex +1, length ) |
|
System.String ToLower() | ToLower(this ) |
|
System.String ToUpper() | ToUpper(this ) |
|
System.String Trim() | Guarnição(this ) |
|
System.String TrimEnd(Char[] trimChars ) |
RTrim(this ) |
|
System.String TrimStart(Char[]trimChars ) |
LTrim(this ) |
|
Boolean Equals(String value ) |
= operador |
Método System.DateTime (Static) Mapping
Método System.DateTime (estático) | Função canônica | Notas |
---|---|---|
Booleano igual (DateTime t1 , DateTime t2 ) |
= operador | |
System.DateTime.Now | CurrentDateTime() | |
System.DateTime.UtcNow | CurrentUtcDateTime() | |
Boolean op_Equality(DateTime d1 , DateTime d2 ) |
= operador | |
Boolean op_GreaterThan(DateTime t1 , DateTime t2 ) |
> Operador | |
Boolean op_GreaterThanOrEqual(DateTime t1 , DateTime t2 ) |
>= operador | |
Boolean op_Inequality(DateTime t1 , DateTime t2 ) |
!= operador | |
Boolean op_LessThan(DateTime t1 , DateTime t2 ) |
< Operador | |
Boolean op_LessThanOrEqual(DateTime t1 , DateTime t2 ) |
<= operador | |
Microsoft.VisualBasic.DateAndTime.DatePart( _ ByVal Interval como DateInterval, _ByVal DateValue como DateTime, _Opcional ByVal FirstDayOfWeekValue como FirstDayOfWeek = VbSunday, _Opcional ByVal FirstWeekOfYearValue como FirstWeekOfYear = VbFirstJan1 _) Como inteiro |
Consulte a seção Função DatePart para obter mais informações. | |
Microsoft.VisualBasic.DateAndTime.Now | CurrentDateTime() | |
Microsoft.VisualBasic.DateAndTime.Year(DateTime TimeValue ) |
Ano() | |
Microsoft.VisualBasic.DateAndTime.Month(DateTime TimeValue ) |
Mês() | |
Microsoft.VisualBasic.DateAndTime.Day(DateTime TimeValue ) |
Dia() | |
Microsoft.VisualBasic.DateAndTime.Hour(DateTime TimeValue ) |
Hora() | |
Microsoft.VisualBasic.DateAndTime.Minute(DateTime TimeValue ) |
Minuto() | |
Microsoft.VisualBasic.DateAndTime.Second(DateTime TimeValue ) |
Segundo() |
Método System.DateTime (Instance) Mapping
Método System.DateTime (instância) | Função canônica |
---|---|
Boolean Equals(DateTime value ) |
= operador |
Dia | Dia(this ) |
Hora | Hora(this ) |
Milissegundos | Milissegundo(this ) |
Minuto | Minuto(this ) |
Month | Mês(this ) |
Second | Segundo(this ) |
Anual | Ano(this ) |
Método System.DateTimeOffset (Instance) Mapeamento
O mapeamento mostrado para os get
métodos nas propriedades listadas.
Método System.DateTimeOffset (instância) | Função canônica | Notas |
---|---|---|
Dia | Dia(this ) |
Sem suporte no SQL Server 2005. |
Hora | Hora(this ) |
Sem suporte no SQL Server 2005. |
Milissegundos | Milissegundo(this ) |
Sem suporte no SQL Server 2005. |
Minuto | Minuto(this ) |
Sem suporte no SQL Server 2005. |
Month | Mês(this ) |
Sem suporte no SQL Server 2005. |
Second | Segundo(this ) |
Sem suporte no SQL Server 2005. |
Anual | Ano(this ) |
Sem suporte no SQL Server 2005. |
Nota
O Equals método retorna true
se os objetos comparados DateTimeOffset forem iguais, false
caso contrário. O CompareTo método retorna 0, 1 ou -1 dependendo se o objeto comparado DateTimeOffset é igual, maior ou menor que, respectivamente.
Método System.DateTimeOffset (Static) Mapping
O mapeamento mostrado para os get
métodos nas propriedades listadas.
Método System.DateTimeOffset (estático) | Função canônica | Notas |
---|---|---|
System.DateTimeOffset.Now() | CurrentDateTimeOffset() | Sem suporte no SQL Server 2005. |
Método System.TimeSpan (Instance) Mapping
O mapeamento mostrado para os get
métodos nas propriedades listadas.
Método System.TimeSpan (instância) | Função canônica | Notas |
---|---|---|
Horas | Hora(this ) |
Sem suporte no SQL Server 2005. |
Milissegundos | Milissegundo(this ) |
Sem suporte no SQL Server 2005. |
Minutos | Minuto(this ) |
Sem suporte no SQL Server 2005. |
Segundos | Segundo(this ) |
Sem suporte no SQL Server 2005. |
Nota
O Equals método retorna true
se os objetos comparados TimeSpan forem iguais, false
caso contrário. O CompareTo método retorna 0, 1 ou -1 dependendo se o objeto comparado TimeSpan é igual, maior ou menor que, respectivamente.
Função DatePart
A DatePart
função é mapeada para uma das várias funções canônicas diferentes, dependendo do valor de Interval
. A tabela a seguir exibe o mapeamento de função canônica para os valores suportados de Interval
:
Valor do intervalo | Função canônica |
---|---|
DateInterval.Year | Ano() |
DateInterval.Month | Mês() |
DateInterval.Day | Dia() |
DateInterval.Hour | Hora() |
DateInterval.Minute | Minuto() |
DateInterval.Second | Segundo() |
Mapeamento de Funções Matemáticas
Método CLR | Função canônica |
---|---|
System.Decimal.Ceiling(Decimal d ) |
Teto(d ) |
System.Decimal.Floor(Decimal d ) |
Andar(d ) |
System.Decimal.Round(Decimal d ) |
Rodada(d ) |
System.Math.Ceiling(Decimal d ) |
Teto(d ) |
System.Math.Floor(Decimal d ) |
Andar(d ) |
System.Math.Round(Decimal d ) |
Rodada(d ) |
System.Math.Ceiling(Duplo a ) |
Teto(a ) |
System.Math.Floor(Duplo a ) |
Andar(a ) |
System.Math.Round(Duplo a ) |
Rodada(a ) |
System.Math.Round(Valor duplo, Int16 dígitos) | Arredondado (valor, dígitos) |
System.Math.Round(Valor duplo, Int32 dígitos) | Arredondado (valor, dígitos) |
System.Math.Round(valor decimal, Int16 dígitos) | Arredondado (valor, dígitos) |
System.Math.Round(valor decimal, Int32, dígitos) | Arredondado (valor, dígitos) |
System.Math.Abs(valor Int16) | Abs(valor) |
System.Math.Abs(valor Int32) | Abs(valor) |
System.Math.Abs(valor Int64) | Abs(valor) |
System.Math.Abs(Valor de byte) | Abs(valor) |
System.Math.Abs(Valor único) | Abs(valor) |
System.Math.Abs(Valor duplo) | Abs(valor) |
System.Math.Abs(Valor decimal) | Abs(valor) |
System.Math.Truncate(Valor duplo, Int16 dígitos) | Truncate(valor, dígitos) |
System.Math.Truncate(Valor duplo, Int32 dígitos) | Truncate(valor, dígitos) |
System.Math.Truncate(Valor decimal, Int16 dígitos) | Truncate(valor, dígitos) |
System.Math.Truncate(valor decimal, dígitos Int32) | Truncate(valor, dígitos) |
System.Math.Power (valor Int32, expoente Int64) | Potência (valor, expoente) |
System.Math.Power(valor Int32, expoente duplo) | Potência (valor, expoente) |
System.Math.Power (valor Int32, expoente decimal) | Potência (valor, expoente) |
System.Math.Power (valor Int64, expoente Int64) | Potência (valor, expoente) |
System.Math.Power (valor Int64, expoente duplo) | Potência (valor, expoente) |
System.Math.Power (valor Int64, expoente decimal) | Potência (valor, expoente) |
System.Math.Power (Valor duplo, expoente Int64) | Potência (valor, expoente) |
System.Math.Power (Valor duplo, expoente duplo) | Potência (valor, expoente) |
System.Math.Power(Valor duplo, expoente decimal) | Potência (valor, expoente) |
System.Math.Power(Valor decimal, expoente Int64) | Potência (valor, expoente) |
System.Math.Power (valor decimal, expoente duplo) | Potência (valor, expoente) |
System.Math.Power(Valor decimal, expoente decimal) | Potência (valor, expoente) |
Mapeamento de operadores Bitwise
Operador Bitwise | Função canônica para operandos não booleanos | Função canônica para operandos booleanos |
---|---|---|
Bitwise E operador | BitWiseAnd | op1 E op2 |
Operador Bitwise OR | BitWiseOr | op1 OU op2 |
Operador Bitwise NOT | BitWiseNão | NÃO(op) |
Operador XOR Bitwise | BitWiseXor | ((op1 E NÃO(op2)) OU (NOT(op1) E op2)) |
Outros mapeamentos
Método | Função canônica |
---|---|
Guid.NewGuid() | NewGuid() |