Hola a todos,

La alegría de llegar a la oficina me duro poco. Ya que apenas me puse me sucedió un error, que he visto que muchos foros discuten. ¿Qué ocurre?. Estamos haciendo búsquedas de los datos en CRM a través de LINQ. Para poder hacer las consultar, utilizamos el LinqPad, luego lo pasamos al VS.NET y listo búsquedas rápidas y buenas.

Pero no todo es belleza, hay algunos campos que te pueden retornar un error, ya sean porque están en nulo y/o el formato es incorrecto , por ejemplo, he estado buscando algunos campos de tipo Option y me salía un error (cosa que el Lunes no me paso). Os presento el error

LINQPad 4_2012-07-02_11-48-31

Como siempre, un error no muy descriptivo que digamos no :D.

La consulta es la siguiente:

 

   1:  (from so in AutosSet
   2:      where so.Id == new Guid("<Id del auto>")
   3:      select new { 
   4:      Marca = so.Marca,
   5:      Modelo = so.Modelo,
   6:      Tipo = ((Microsoft.Xrm.Sdk.OptionSetValue)so.Tipovehiculo).Value
   7:      }).First()

Bueno, el error está en la última (si fuera el error por formato) columna de la búsqueda, la solución

 

   1:  var oFinanciado = (from so in AutosSet
   2:      where so.Id == new Guid("<Id Auto>")
   3:      select new { 
   4:              Marca = so.Marca,
   5:                  Modelo = so.Modelo,
   6:                  Tipo = so.Tipovehiculo == null ? null : so.FormattedValues["Tipovehiculo"]
   7:      }).First();

Utilizando ese IIF (para los que vienen de VB) y ese FormatteddValues se soluciona todo y el valor que nos muestra, será el texto del Option

Salu2

Atilio