2016-05-25 2 views
0

1から多くのナビゲーションプロパティの数を返す方法は?BreezeJSナビゲーションプロパティのアイテム数を取得する

Thisは機能しません。 (クライアントでは、値0が返されます)。

[HttpGet] 
public IQueryable<object> AccountsSummary() 
{ 
    return from t in _contextProvider.Context.Accounts 
     select 
      new 
      { 
       t, 
       ContactsCount = t.Contacts.Count() 
      }; 
} 

しかし、私は、これは、クライアント側からフィルタリングするODATA機能を無効にすると思います:

ソリューションhereが悪いわけではありませんか?

おかげ

フェリックス

+0

親アカウントが割り当てられているすべての連絡先の合計数をカウントするか、1つのアカウントの連絡先数を確認しますか? – HotTowelie

+0

私は後者を望んでいます(アカウントごとの連絡先の数) – flieks

答えて

0

あなたがオブジェクト1のカウントしたい場合:nのナビゲーションプロパティを使用すると、簡単なLINQを使用することができます。

[HttpGet] 
public int AccountContactCount(int accountId) 
{ 
    return _contextProvider.Context.Accounts.Where(p => p.Id == accountId).Select(p => p.Contacts).Single().Count(); 
} 

はあなたが送っだけの場合には、この前nullcheckを追加します。既存のIDがないか、アカウントに連絡先がない場合でも有効です。

+0

ありがとう、それは本当ですが、私は余分なリクエストを望んでいません(あなたはそれをクライアント側でコードする必要があります+余分な要求です)。 breezeでは、すべてのナビゲーションプロパティを読み込むことができます(これはカウントを与えます)が、いくつかのナビゲーションプロパティでは、実際のデータではなくカウントが必要です。 – flieks

関連する問題