[c#] NHibernate e raccolta conta


Answers

Supponendo che tu abbia l'HBM corretto che Persona ha molti Subordinati puoi solo ottenere una persona e poi chiamare Subordinates.Count

Si tratta di un processo moderatamente dispendioso se tutto ciò di cui hai bisogno è il conteggio poiché popolerà completamente tutta la raccolta Subordinates per ottenere solo il conteggio. Penso che faresti meglio a creare un metodo che raccolga una Persona e ti restituisca un conteggio dei loro Subordinati e usi HQL per eseguire una funzione di conteggio reale. Se non è possibile eseguire una funzione di conteggio diretto, è possibile fare in modo che restituisca solo un singolo valore per subordinato corrispondente a FK Persona e quindi chiama. Lunghezza o .Count sulla raccolta restituita. Tuttavia, presumo che HQL possa essere in grado di contarlo direttamente per te.

Question

Ho la seguente configurazione di classe per la persistenza usando NHibernate

public class Person
{
    public string Name { get; set; }
    public IList<Person> Subordinates { get; set; }
}

Ora dì che ho una griglia con due colonne, "Nome" e "Numero di subordinati" qual è il modo migliore per farlo in NHibernate, pur mantenendo l'uso di oggetti di dominio laddove possibile.

Grazie




Links