Запрос NHibernate для поиска записей, имеющих несколько одинаковых столбцов и несколько разных в одной таблице - PullRequest
0 голосов
/ 26 декабря 2011

Попытка написать беглый запрос для выполнения следующего: найти услуги, предоставляемые одному и тому же учащемуся в одну и ту же дату, но с другим кодом. SQL-запрос может выглядеть так:

select * from [Service] t1
where exists (
select 
    * 
from [Service] t2 
where 
t1.StudentId = t2.StudentId and
t1.ServiceDate = t2.ServiceDate and 
t1.ProcedureCodeId <> t2.ProcedureCodeId )

1 Ответ

0 голосов
/ 01 января 2012

примечание: код из памяти без компилятора, должен быть настроен

Service serviceAlias = null;

var subquery = QueryOver.Of<Service>()
    .WhereRestrictonOn(s => s.Student.Id).EqProperty(() => serviceAlias.Student.Id)
    .WhereRestrictonOn(s => s.Date).EqProperty(() => serviceAlias.Date)
    .WhereRestrictonOn(s => s.ProcedureCode.Id).NotEqProperty(() => serviceAlias.ProcedureCode.Id);

var results = session.QueryOver(() => serviceAlias)
    .WithSubqueries.WhereExists(subquery)
    .List();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...