2009-05-19 4 views
0

Mit anderen Worten, wie Sie tun, tun etwas Einfaches wie folgt aus:Wie wird eine "Null-Tabelle" in NHibernate ausgewählt?

select 1 

Oder genauer gesagt in dem speziellen Problem ich zu tun habe, so etwas wie dieses:

SELECT (case when exists (<subquery>) then 1 else 0 end) AS result 

kurz So gibt es eine Möglichkeit in NHibernate, eine Auswahl zu treffen, ohne dass die Klausel "FROM table" generiert wird?

Antwort

1

Sie nähern sich diesem Problem falsch.

Führen Sie die Unterabfrage aus, die Sie nach der Verwendung einer Zählungsprojektion verwenden, und führen Sie dann die Logik if else im Code aus.

+0

Danke für die Antwort, Derek. Ich fragte mich, wie schnell mir jemand diese Antwort geben würde :). Die Verwendung von count ist eigentlich die Art, wie ich es jetzt mache; Ich dachte nur, eine einfache EXISTS wäre eine effizientere Operation, da keine Summierung beteiligt ist. Danke noch einmal. –

+0

Hmm Ich denke, es wäre effizienter, aber es gibt keine Möglichkeit, dies mit NHibernate kurz vor der Ausführung der Raw SQL gegen den Server zu tun. Wahrscheinlich nicht die Leistung/Wartungskosten wert. –

0

Ich würde diese <subquery> in eine select top 1 id from table Abfrage umwandeln. Überprüfen Sie dann, ob ein Ergebnis ungleich Null vorliegt. Jede NH-Abfrage startet immer from table.

Verwandte Themen