Bir grupla bir sorgudan bir sayı elde etmeye çalışıyorum ve yalnızca istediğim SQL'i NHibernate'in QueryOver sözdizimine dönüştürmeyi öğrenemiyorum.NHibernate QueryOver: Bir alt sorguda grupla bir satır sayısı alın
select count(*) from
(select Email from Entry
where (conditions...)
group by Email) as tmp
basit doğru görünüyor:
Bu
SQL nedir?Ben böyle yapmaya çalışıyorum nasıl olduğunu, ancak RowCount() çağrısı uzakta tamamen tarafından grubunu optimize etmek görünüyor:
var query = _unitOfWork.CurrentSession.QueryOver<ContestEntry>()
.Select(Projections.Property<ContestEntry>(x => x.Email),
Projections.Group<ContestEntry>(x => x.Email));
return query.RowCount();
Bunun için Kriterlerini kullanarak sakıncası olmaz, ama ben sihirli dizelerden uzaklaşmamı sağlayan yeni (bana) QueryOver API'sı hakkında heyecan duyuyorum.
Güncelleme:
Bu uygulama, SQL CE üzerinde çalışan bir sayımı (örn seçme sayımı (ayrı Email)) içinde ayrı bir sorgu mu oluşturulan SQL kullanmak veremiyoruz.
bakınız: http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/80a1d7dd-22be-4583-b8f2-fcd8cde5ec53/ ve http://our.umbraco.org/wiki/install-and-setup/sql-server-ce-4-known-issues ("sayısında Farklı desteklenmiyor", sayfa aşağı yol yaklaşık 2/3) Bu kadar karmaşık bir sorgu neden ihtiyaç emin değilim
Teşekkürler Alex, haklısınız - bu SQL Server'da (ve muhtemelen diğer DB'lerde) düzgün çalışıyor. Ancak, bu şey üzerinde çalışan uygulama da bazı durumlarda SQL CE kullanır ve her ne sebeple SQL CE select sayımı (farklı x) desteklemiyor. Http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/80a1d7dd-22be-4583-b8f2-fcd8cde5ec53/ ve http://our.umbraco.org/wiki/install-and- sayfasına bakın. setup/sql-server-ce-4-bilinen-sorunlar – mmacaulay
Bunu doğru cevap olarak işaretledim, çünkü teknik olarak, SQL Server'ı kullandığınız sürece. SQL CE için, çalışmak için satır içi SQL kullanmalıydım. – mmacaulay