2012-04-05 12 views

Antwort

0

Ich glaube, Sie "Transformers.DistinctRootEntity" verwenden können:

session.QueryOver<Entity>() 
    .Fetch(entity => entity.SubEntity).Eager 
    .TransformUsing(Transformers.DistinctRootEntity) 
    .List(); 

aber es war es auf Web-Server-Schicht durchgeführt (nicht SQL Server)

Wenn Sie nur einige Felder bekommen (nicht juristische Person), Sie kann Distinct oder Group By verwenden.

0

Für eifrige Laden mit einer Verbindung dann .TransformUsing(Transformers.DistinctRootEntity) wird gut funktionieren. Ein Beispiel hierfür finden Sie in blog post (das Verwenden von Eager Loading kann zu unerwarteten Ergebnissen führen). Sobald Sie jedoch zwei oder mehr Joins haben, bricht TransformUsing zusammen.

Siehe diese blog post von Ayende gekippt .

Verwandte Themen