Breeze Sharp – 展开不能用lambdaexpression式工作
当我试图通过lambda扩展一个导航属性,如下所示:
query = query.Expand(x => x.Dealers);
我的查询失败
内部例外
内部exception消息:
expression式“x => x.Dealers”不是导航path的有效expression式。 lambdaexpression式主体中唯一受支持的操作是MemberAccess和TypeAs。 expression式必须至less包含一个MemberAccess,并且不能以TypeAs结尾。
然而,当我试图通过一个string参数进行扩展:
query = query.Expand("Dealers");
一切似乎正常工作。
我的“地区”微风客户实体:
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; } }
我的经销商导航实体:
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; } }
我最近的尝试是通过“ForeignKey”数据注释来使外键关系显式化,但是由此产生的错误仍然是一样的。
我正在使用breeze sharp v0.6.0.3。
更新1:这不是完全相同的查询如上,但相同的结果。 只是来自Breeze.Sharp源代码的屏幕截图,我一直在介绍。 这里放大图片
尝试如下
query = query.ToList().Expand(val => val.Dealers);
query = query.Include(val => val.Dealers);