Sonraki ölçüt sorgusu için bir 'temel' olarak bir ICriteria sonucunu kullanmanın bir yolu var mı? Örneğin Diğer sorgu sonucu nHibernate icriteria çalıştır (iki farklı sorgu)
Ben
SELECT department.name, total
FROM department, query0
JOIN LEFT ON department.id=query0.id
WHERE total > 3
Ben tek büyük sorgu idam olmasını istemiyoruz sorgu query0
gibi bir sorgu
SELECT department_id, sum(cost) AS total
FROM payment
GROUP BY payment.department_id
depolamak sonuç oluşturmak ve sonra yürütmek isterseniz
hepsi bir kerede (bu alt sorgularla bir ICriteria oluşturmanın sonucudur). İlk sorgu sonucu ve aynı zamanda ikinci sorgudaki projeksiyondaki sütunlarından birini içeren bir seçim/kısıtlama olduğumu unutmayın.Kriterler, sınıfları tanımlamak için dizeler kullanılarak dinamik olarak oluşturulur.
Im ICriteria ile familir değil, ama edemedim Maalesef NHibernate burada CTEs başa çıkmak için herhangi bir iyi soyutlamalar var gibi görünüyor, ama değil sorgu, SQL Server böyle görünebilir İlk sorgu taban veya rootquery olarak hizmet eder ve etrafına yeni bir seçim yapar mı? –
Belki de sorgunuzun bölüm_dizimlerini0 toplam> 3 ile filtrelemeli ve ardından ikinci sorgudaki bir IN yan tümcesiyle bölümleri almalısınız. IN list gerçekten büyük olduğunda bu konu hakkında Ayende güzel posta: http://ayende.com/blog/2583/nhibernates-xml-in yanı sıra XmlIn.cs: http: // kodu için bozuk bir bağlantı. google.com/p/hornget/source/browse/trunk/package_tree/frameworks/rhino.tools/rhino/patch/commons/Rhino.Commons.NHibernate/NHibernate/XmlIn.cs?spec=svn78&r=78 – jbl
@Kay Nelson Bu Birleştirilmiş, ancak tek bir sorgu ile ayrılan kriterlerin tam olarak bir yaklaşımdır. Jbl hala projeksiyonda toplama ihtiyacım var. Ve bu çözüm sadece bu özel durumda çalışacaktır (örneğin, birleşimin "departman.id = query0.id VE departman.XYZ == query0.XYZ" üzerinde değilse) – Dani