Sie müssen Ihre eigene ResultTransformer-Implementierung definieren, damit dies so funktioniert, wie Sie es benötigen. Unten finden Sie eine Referenzimplementierung, die Sie nach Bedarf anpassen können. Es gibt einen kompletten Mangel an Fehlerprüfung usw .; also mit Vorsicht verwenden;)
%Vor% Sie brauchen nicht das DictionaryResultTransformer
, das von DanP gepostet wurde. AliasToEntityMapTransformer
macht dasselbe, aber auch nicht wird eigenständig arbeiten. Sie erhalten ein Wörterbuch von Entitäten.
Der einzige Weg, den ich gefunden habe, ist, jede Eigenschaft einzeln zu projizieren. Allerdings möchten Sie das nicht von Hand machen, da es bei jeder Änderung Ihres Mappings bricht. Die Lösung ist etwa so:
%Vor% Im obigen Beispiel verwende ich eine Abfrage, um Get
zu simulieren. Natürlich können Sie dies etwas ändern und stattdessen eine Sammlung zurückgeben; Rufen Sie einfach List<T>
anstelle von UniqueResult<T>
auf.
Sehen Sie sich diesen Blogbeitrag an:
Wenn Sie ein konkretes Beispiel möchten, überprüfen Sie die Beispiele dieses netten Tutorials. Sehen Sie sich die Zusammenfassungen an, die keine Entitäten sind und eine benutzerdefinierte Zuordnungslogik haben:
Oder führen Sie eine Google-Suche nach SetResultTransformer durch, die nur für diese Zwecke verfügbar ist, und die Ergebnisse in andere Objekte oder Sammlungen transformiert. Einschließlich IDictionary.
Sie können dies tun, indem Sie eine clientseitige linq-Projektion durchführen, siehe Diegos Antwort auf diesen Beitrag .
Tags und Links nhibernate fluent-nhibernate