Método CLR ao mapeamento canônico de função
Entity Framework fornece um conjunto de funções canônicas que implementam a funcionalidade que são comuns através de muitos sistemas de base de dados, como a manipulação de cadeia de caracteres e funções matemáticas. Isso permite aos desenvolvedores para direcionar uma ampla gama de sistemas de base de dados. Quando chamadas de uma tecnologia consultando, como LINQ to Entities, essas funções canônicas são transmitidos para a função correspondente correta do armazenamento para o provedor que está sendo usado. Isso permite que as chamadas de função são expressos em um formulário comuns através de fontes de dados, fornecendo uma experiência consistente de consulta por de fontes de dados. Os operadores AND, OR, NOT e XOR bit a bit também serão mapeados para funções canônicas quando o operando for um tipo numérico. Para operandos boolianos, os operadores AND, OR, NOT e XOR bit a bit 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 em Entity Framework envolvem mapear determinados métodos de CLR métodos na fonte de dados subjacente com as funções canônicas. Todas as chamadas de método em consulte LINQ to entidades que não são mapeados explicitamente a uma função canônica resultarão em uma exceção de NotSupportedException de runtime que está sendo lançada.
Mapear de método System.String (estático)
Método System.String (estático) | Função canônica |
---|---|
Concat System.String (cadeia de caracteres str0 , cadeia de caracteres str1 ) |
Concat (str0 , str1 ) |
Concat System.String (cadeia de caracteres str0 , cadeia de caracteres str1 , cadeia de caracteres str2 ) |
Concat (Concat (str0 , str1 ), str2 ) |
Concat System.String (cadeia de caracteres str0 , cadeia de caracteres str1 , cadeia de caracteres str2 , cadeia de caracteres str03 ) |
Concat (Concat (Concat (str0 , str1 ), str2 ), str3 ) |
Iguais booleanas (cadeia de caracteres a , cadeia de caracteres b ) |
Operador = |
IsNullOrEmpty booleano (cadeia de caracteres value ) |
(IsNull (value )) OU comprimento (value = 0) |
Op_Equality booleano (cadeia de caracteres a , cadeia de caracteres b ) |
Operador = |
Op_Inequality booleano (cadeia de caracteres a , cadeia de caracteres b ) |
Operador != |
Microsoft.VisualBasic.Strings.Trim (cadeia de caracteres str ) |
Preparo (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 (cadeia de caracteres str , Int32 Length ) |
Esquerda (str , Length ) |
Microsoft.VisualBasic.Strings.Mid (cadeia de caracteres str , Int32 Start , Int32 Length ) |
Subsequência de caracteres (str , Start , Length ) |
Microsoft.VisualBasic.Strings.Right (cadeia de caracteres str , Int32 Length ) |
Direito (str , Length ) |
Microsoft.VisualBasic.Strings.UCase (cadeia de caracteres Value ) |
ToUpper (Value ) |
Microsoft.VisualBasic.Strings.LCase (valor de cadeia de caracteres) | ToLower (Value ) |
Mapear de método System.String (instância)
Método de instância System.String () | Função canônica | Observações |
---|---|---|
Boolean contém (cadeia de caracteres value ) |
this GOSTA de “% devalue %” |
Se value não for uma constante, será mapeado para IndexOf(this , value ) > 0 |
EndsWith booleano (cadeia de caracteres value ) |
this LIKE ' %value ' |
Se value não é uma constante, então este mapeados para a direita (this ,value comprimento ()) = value . |
StartsWith booleano (cadeia de caracteres value ) |
this GOSTA de 'value % " |
Se value não é uma constante, então este mapeia para IndexOf (this , value ) = 1. |
Comprimento | Comprimento (this ) |
|
Int32 IndexOf (cadeia de caracteres value ) |
IndexOf (this , value ) - 1 |
|
Inserção de System.String (Int32, startIndex cadeia de caracteres value ) |
Concat (Concat (subcadeia de caracteres (this , 1, startIndex ), value ), subcadeia de caracteres (this , startIndex +1, comprimento (this ) - startIndex )) |
|
System.String remove (Int32 startIndex ) |
Subsequência de caracteres (this , 1, startIndex ) |
|
System.String remove (Int32 startIndex , Int32 count ) |
concat(substring(this , 1, startIndex ), substring(this , startIndex + count +1, length(this ) - (startIndex + count ))) |
Remova (startIndex , count ) é suportado apenas se count é um inteiro maior ou igual a 0. |
System.String substituem (cadeia de caracteres oldValue , cadeia de caracteres newValue ) |
Substitua (this , oldValue , newValue ) |
|
Subsequência de caracteres de System.String (Int32 startIndex ) |
Subsequência de caracteres (this , startIndex +1, comprimento (this ) - startIndex ) |
|
Subsequência de caracteres de System.String (Int32 startIndex , Int32 length ) |
Substring(this , startIndex +1, length ) |
|
System.String ToLower() | ToLower (this ) |
|
System.String ToUpper() | ToUpper (this ) |
|
System.String Trim() | Preparo (this ) |
|
System.String TrimEnd char ([]) trimChars |
RTrim (this ) |
|
System.String TrimStart char ([])trimChars |
LTrim (this ) |
|
Iguais booleanas (cadeia de caracteres value ) |
Operador = |
Mapear de método System.DateTime (estático)
Método System.DateTime (estático) | Função canônica | Observações |
---|---|---|
Iguais booleanas (DateTime t1 , DateTime t2 ) |
Operador = | |
System.DateTime.Now | CurrentDateTime() | |
System.DateTime.UtcNow | CurrentUtcDateTime() | |
Op_Equality booleano (DateTime d1 , DateTime d2 ) |
Operador = | |
Op_GreaterThan booleano (DateTime t1 , DateTime t2 ) |
Operador > | |
Op_GreaterThanOrEqual booleano (DateTime t1 , DateTime t2 ) |
>= operator | |
Op_Inequality booleano (DateTime t1 , DateTime t2 ) |
Operador != | |
Boolean op_LessThan(DateTime t1 , DateTime t2 ) |
Operador < | |
Op_LessThanOrEqual booleano (DateTime t1 , DateTime t2 ) |
<= operator | |
Microsoft.VisualBasic.DateAndTime.DatePart (_ ByVal Interval As DateInterval, _ByVal DateValue As DateTime, _Optional ByVal FirstDayOfWeekValue As FirstDayOfWeek = VbSunday, _Optional ByVal FirstWeekOfYearValue As FirstWeekOfYear = VbFirstJan1 _Como o inteiro) |
Consulte a seção de função DatePart para mais informações. | |
Microsoft.VisualBasic.DateAndTime.Now | CurrentDateTime() | |
Microsoft.VisualBasic.DateAndTime.Year (DateTime TimeValue ) |
Year() | |
Microsoft.VisualBasic.DateAndTime.Month (DateTime TimeValue ) |
Month() | |
Microsoft.VisualBasic.DateAndTime.Day (DateTime TimeValue ) |
Day() | |
Microsoft.VisualBasic.DateAndTime.Hour (DateTime TimeValue ) |
Hour() | |
Microsoft.VisualBasic.DateAndTime.Minute (DateTime TimeValue ) |
Minute() | |
Microsoft.VisualBasic.DateAndTime.Second (DateTime TimeValue ) |
Second() |
Mapear de método System.DateTime (instância)
Método de instância System.DateTime () | Função canônica |
---|---|
Iguais booleanas (DateTime value ) |
Operador = |
Dia | Dia (this ) |
Hora | Hora (this ) |
Milissegundos | Milissegundos (this ) |
Minuto | Minuto (this ) |
Mês | Mês (this ) |
Segundo | Segundo (this ) |
Year | Ano (this ) |
Mapear o método de instância System.DateTimeOffset ()
O mapeamento mostrado para os métodos de get
nas propriedades listadas.
Método de instância System.DateTimeOffset () | Função canônica | Observações |
---|---|---|
Dia | Dia (this ) |
Não suportado no SQL Server 2005. |
Hora | Hora (this ) |
Não suportado no SQL Server 2005. |
Milissegundos | Milissegundos (this ) |
Não suportado no SQL Server 2005. |
Minuto | Minuto (this ) |
Não suportado no SQL Server 2005. |
Mês | Mês (this ) |
Não suportado no SQL Server 2005. |
Segundo | Segundo (this ) |
Não suportado no SQL Server 2005. |
Year | Ano (this ) |
Não suportado no SQL Server 2005. |
Observação
O método de Equals retorna true
se os objetos comparados de DateTimeOffset são iguais; false
de outra maneira. O método de CompareTo retorna 0, 1 ou -1, dependendo se o objeto comparado de DateTimeOffset é igual, maior do que, ou menor que, respectivamente.
Mapear de método System.DateTimeOffset (estático)
O mapeamento mostrado para os métodos de get
nas propriedades listadas.
Método de System.DateTimeOffset (estático) | Função canônica | Observações |
---|---|---|
System.DateTimeOffset.Now() | CurrentDateTimeOffset() | Não suportado no SQL Server 2005. |
Mapear o método de instância System.TimeSpan ()
O mapeamento mostrado para os métodos de get
nas propriedades listadas.
Método de instância System.TimeSpan () | Função canônica | Observações |
---|---|---|
Horas | Hora (this ) |
Não suportado no SQL Server 2005. |
Milissegundos | Milissegundos (this ) |
Não suportado no SQL Server 2005. |
minutos | Minuto (this ) |
Não suportado no SQL Server 2005. |
Segundos | Segundo (this ) |
Não suportado no SQL Server 2005. |
Observação
O método de Equals retorna true
se os objetos comparados de TimeSpan são iguais; false
de outra maneira. O método de CompareTo retorna 0, 1 ou -1, dependendo se o objeto comparado de TimeSpan é igual, maior do que, ou menor que, respectivamente.
Função DatePart
A função de DatePart
é mapeada a uma das várias funções canônicas diferentes, dependendo do valor de Interval
. A tabela a seguir exibe o mapeamento canônico de função para os valores de Interval
suportados:
Range value | Função canônica |
---|---|
DateInterval.Year | Year() |
DateInterval.Month | Month() |
DateInterval.Day | Day() |
DateInterval.Hour | Hour() |
DateInterval.Minute | Minute() |
DateInterval.Second | Second() |
Mapeamento de função matemática
Método CLR | Função canônica |
---|---|
System.Decimal.Ceiling d (decimal) |
Teto (d ) |
System.Decimal.Floor d (decimal) |
Andar (d ) |
System.Decimal.Round d (decimal) |
Redondo (d ) |
System.Math.Ceiling d (decimal) |
Teto (d ) |
System.Math.Floor d (decimal) |
Andar (d ) |
System.Math.Round d (decimal) |
Redondo (d ) |
System.Math.Ceiling ( a dupla) |
Teto (a ) |
System.Math.Floor ( a dupla) |
Andar (a ) |
System.Math.Round ( a dupla) |
Redondo (a ) |
Dígitos System.Math.Round (valor double, Int16) | Redondo (valor, dígitos) |
Dígitos System.Math.Round (valor double, Int32) | Redondo (valor, dígitos) |
Dígitos System.Math.Round (valor decimal, Int16) | Redondo (valor, dígitos) |
System.Math.Round (valor decimal, Int32, dígitos) | Redondo (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 do byte) | Abs (valor) |
System.Math.Abs (escolha o valor) | Abs (valor) |
System.Math.Abs (o valor double) | Abs (valor) |
System.Math.Abs (valor decimal) | Abs (valor) |
System.Math.Truncate (o valor double, os dígitos Int16) | Truncar (valor, dígitos) |
System.Math.Truncate (dobram o valor Int32, os dígitos) | Truncar (valor, dígitos) |
Dígitos System.Math.Truncate (valor decimal, Int16) | Truncar (valor, dígitos) |
Dígitos System.Math.Truncate (valor decimal, Int32) | Truncar (valor, dígitos) |
Expoente System.Math.Power (valor Int32, Int64) | Põe (valor, expoente) |
System.Math.Power (valor Int32, expoente dupla) | Põe (valor, expoente) |
System.Math.Power (valor Int32, expoente decimal) | Põe (valor, expoente) |
Expoente System.Math.Power (valor Int64, Int64) | Põe (valor, expoente) |
System.Math.Power (valor Int64, expoente dupla) | Põe (valor, expoente) |
System.Math.Power (valor Int64, expoente decimal) | Põe (valor, expoente) |
Expoente System.Math.Power (valor double, Int64) | Põe (valor, expoente) |
System.Math.Power (valor double, expoente dupla) | Põe (valor, expoente) |
System.Math.Power (valor double, decimal expoente) | Põe (valor, expoente) |
Expoente System.Math.Power (valor decimal, Int64) | Põe (valor, expoente) |
System.Math.Power (valor decimal, expoente dupla) | Põe (valor, expoente) |
System.Math.Power (valor decimal, expoente decimal) | Põe (valor, expoente) |
Mapeamento bit a bit de operador
Operador bit a bit | Função canônica para operandos não booleanas | Função canônica para operandos booleanas |
---|---|---|
Operador bitwise AND | BitWiseAnd | op1 AND op2 |
Operador OR bit a bit | BitWiseOr | op1 OR op2 |
Operador bitwise NOT | BitWiseNot | NOT(op) |
Operador bitwise XOR | BitWiseXor | ((op1 AND NOT(op2)) OR (NOT(op1) AND op2)) |
Outro mapeamento
Método | Função canônica |
---|---|
Guid.NewGuid() | NewGuid() |