如何使用QueryOver(或CriteriaAPI)編寫以下內容?NHibernate QueryOver嵌套在FROM中選擇
select foo from (select 1 as foo) as bar
如何使用QueryOver(或CriteriaAPI)編寫以下內容?NHibernate QueryOver嵌套在FROM中選擇
select foo from (select 1 as foo) as bar
這實際上是不完全很明顯,如果你使用QueryOver
接口 - 這是更爲複雜和微妙的不是它第一次出現。考慮使用NHibernate.Linq.LinqExtensionMethods.Query<T>
:
session.Query<Person>().Select(p => p.Husband).Select(p => p.Name).ToList()
會給你一個List<string>
,對應於SQL:
select h.name from (select husband as h from person) as h
實際的查詢比以前更復雜,後來爲了避免這種嵌套選擇(可能爲了更好)而被重寫。我還沒有使用過LinqExtensionMethods,但看起來很有趣,而且看起來好像它具有所需的功能。 – Shagglez
它比標準的QueryOver更接近Linq。我在使用它們進行自定義抓取時遇到了麻煩,或者更復雜,例如'session.Query
到目前爲止,除了上面提到的,我用QueryOver實現查詢並沒有麻煩,但是我已經簡化了查詢。然而,可以在多個字段上進行連接。 – Shagglez
AIFAIK標準和Queryover(約標準的包裝)不能有查詢的from子句。你必須訴諸像'select(select 1 as foo)from bar'那樣的行爲。 – Firo