当我尝试通过lambda扩展导航属性时:
query = query.Expand(x => x.Dealers);
我的查询失败,
内部异常
内部异常消息:
表达式'x => x.Dealers'不是导航路径的有效表达式。 lambda表达式主体中唯一支持的操作是MemberAccess和TypeAs。表达式必须至少包含一个MemberAccess,并且不能以TypeAs结尾。
然而,当我尝试通过字符串参数进行扩展时:
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源代码的截图,我一直在逐步完成。较大的图片here
答案 0 :(得分:1)
尝试以下
query = query.ToList().Expand(val => val.Dealers);
答案 1 :(得分:1)
query = query.Include(val => val.Dealers);