如何使用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