Я пытаюсь выполнить несколько простых SQL (используя sql server 2005), используя QueryOver в NHibernate.Запрос состоит в том, чтобы подсчитать, сколько раз серийный номер многократно используется в списке предметов, а затем выбрать серийные номера только с 1 использованием.Обратите внимание, что я не хочу отличных серийных номеров, так как я не хочу использовать серийные номера, которые используют> 1.
Запрос SQL для этого:
SELECT SERNUM, expr1
FROM (SELECT SERNUM, COUNT(SERNUM) AS expr1
FROM ITEM
GROUP BY SERNUM) AS derivedtbl_1
WHERE (expr1 = 1)
ЧтоДо сих пор я использовал QueryOver:
var query = session.QueryOver<Item>()
.Select(Projections.ProjectionList()
.Add(Projections.Count<Item>(x => x.Sernum))
.Add(Projections.GroupProperty("Sernum"))).List();
Этот код генерирует SQL (хотя он не любит помещать столбец Count () в список).Я не уверен, как получить доступ к столбцу данных, сгенерированных Count (), чтобы сказать, возвращать только там, где он есть 1. SQL, который он генерирует:
SELECT count(this_.SERNUM) as y0_,
this_.SERNUM as y1_
FROM ITEM this_
GROUP BY this_.SERNUM
Я не уверен, если яЯ подхожу к этому правильному пути, но, надеюсь, кто-то может указать мне на это.