2016-05-25 9 views
0

Wie die Zählung einer 1 zu viele Navigationseigenschaft zurückgeben?BreezeJS get itemcount einer Navigationseigenschaft

This funktioniert nicht. (Auf dem Client bekomme ich den Wert 0). here

Die Lösung ist nicht schlecht:

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

Aber ich denke, das wird die OData-Funktionen deaktivieren Seite von Client filtern aus?

Dank

Felix

+0

Möchten Sie die Gesamtzahl aller Kontakte anzeigen, denen ein Elternkonto zugewiesen wurde, oder möchten Sie herausfinden, wie viele Kontakte ein einzelnes Konto hat? – HotTowelie

+0

Ich möchte die letztere (die Anzahl der Kontakte pro Konto) – flieks

Antwort

0

Wenn Sie die Zählung eines Objekte 1: n Navigations Eigenschaft, die Sie einfach Linq verwenden können:

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

ein nullcheck case gesendet eine nicht existierende ID oder das Konto hat keine Kontakte, aber das sollte funktionieren.

+0

Danke, das ist wahr, aber ich möchte keine zusätzliche Anfrage (dann müssen Sie es clientseitig + es ist eine extra Anfrage). Mit Brise kann ich alle Navigationseigenschaften geladen bekommen (was die Anzahl geben würde), aber für einige Navigationseigenschaften möchte ich nur die Zählung, nicht die tatsächlichen Daten .. – flieks

Verwandte Themen