c# - sintaxis - Breeze Sharp: Expandir no funciona con la expresión lambda
lambda sintaxis (2)
Prueba como seguidores
query = query.ToList().Expand(val => val.Dealers);
Cuando intento expandir una propiedad de navegación a través de lambda, así:
query = query.Expand(x => x.Dealers);
Mi consulta falla con
Excepción interna
Mensaje interno de excepción:
La expresión ''x => x.Dealers'' no es una expresión válida para la ruta de navegación. Las únicas operaciones admitidas dentro del cuerpo de la expresión lambda son MemberAccess y TypeAs. La expresión debe contener al menos un MemberAccess y no puede terminar con TypeAs.
Sin embargo, cuando intento expandirme a través de un parámetro de cadena:
query = query.Expand("Dealers");
Todo parece funcionar correctamente.
Mi Entidad Cliente de "Región" Breeze:
public class Region : BaseEntity
{
public Region();
public NavigationSet<Dealership> Dealers { get; set; }
public string Name { get; set; }
public Region Parent { get; set; }
public int? ParentId { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int RegionId { get; set; }
public string ShortName { get; set; }
public RegionType Type { get; set; }
}
Entidad de navegación de Mi Concesionario:
public class Dealership : BaseEntity
{
public Dealership();
public DateTime ActiveFrom { get; set; }
public DateTime? ActiveTo { get; set; }
public Brand Brand { get; set; }
[ForeignKey("Brand")]
public int BrandId { get; set; }
public string DealerCode { get; set; }
public DealerGroup DealerGroup { get; set; }
[ForeignKey("DealerGroup")]
public int? DealerGroupId { get; set; }
public virtual NavigationSet<DealerIR> DealerIRs { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int DealershipId { get; set; }
public bool IsActive { get; set; }
public string Line1 { get; set; }
public string Line2 { get; set; }
public string Line3 { get; set; }
public string Line4 { get; set; }
public string Line5 { get; set; }
public string Name { get; set; }
public string PostCode { get; set; }
public Region Region { get; set; }
[ForeignKey("Region")]
public int RegionId { get; set; }
}
Mi último intento fue hacer explícita la relación de clave externa a través de la anotación de datos "ForeignKey", pero el error resultante sigue siendo el mismo.
Estoy usando breeze sharp v0.6.0.3.
ACTUALIZACIÓN 1: No es exactamente la misma consulta que la anterior, pero el mismo resultado. Solo una captura de pantalla del código fuente de Breeze.Sharp que he estado revisando. Imagen más grande here
query = query.Include(val => val.Dealers);