No se puede comparar un Guid a una cadena directamente. O convierte la cadena a un Guid o Guid a una cadena.
La conversión de un Guid a una cadena es tan fácil como llamar al .ToString()
en la variable, pero es importante saber que hay más de una forma de formatear el Guid. Ya sea con o sin guiones:.
someguid.ToString()
le dará algo así como B06A6881-003B-4183-A8AB-39B51809F196
someGuid.ToString("N")
devolverá algo como B06A6881003B4183A8AB39B51809F196
Si decide convertir C.CustomerId
a una cadena de asegurarse de que sabe qué formato customerProfileId
está en
Si puede ser cualquier formato, es mejor que convierta customerProfileId
en un guid: new Guid(customerProfileId)
.
La desventaja de esto es que la conversión de cadena a Guid lanzará una excepción si no está formateada correctamente. Por lo tanto, si obtuvo el customerProfileId
de la entrada del usuario (como un campo de formulario o una URL) debe validarlo primero.
Sin embargo, si extrae la conversión a Guid fuera de su consulta, probablemente obtendrá un mejor rendimiento ya que la comparación de las guías es probablemente más rápida que la comparación de las cadenas.
var customerProfileGuid = new Guid(customerProfileId);
// wrap in try catch if needed
var accountQuery = from C in CustomerModel.CustomerProfile
where C.CustomerId == customerProfileGuid
select C;
Esto no funciona en L2E: 'LINQ a Entidades no reconoce el método 'System.String ToString()' método, y este método no se puede traducir en una expresión de tienda. –