次のように、ラムダを介してナビゲーション プロパティを拡張しようとすると:
query = query.Expand(x => x.Dealers);
私のクエリは失敗します
内部例外
内部例外メッセージ:
式 'x => x.Dealers' は、ナビゲーション パスの有効な式ではありません。ラムダ式の本体内でサポートされている唯一の操作は、MemberAccess と TypeAs です。式には少なくとも 1 つの 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」データ注釈を介して外部キー関係を明示的にすることでしたが、結果のエラーは同じです。
ブリーズシャープv0.6.0.3を使用しています。
更新 1: 上記とまったく同じクエリではありませんが、同じ結果です。私がステップスルーしてきた Breeze.Sharp ソースコードのスクリーンショットです。拡大画像はこちら