вызвать функцию sql, используя nhibernate? - PullRequest
0 голосов
/ 21 апреля 2010

Я хочу запросить вот так:

select * from table where concat(',', ServiceCodes, ',') like '%,33,%';
select * from table where  (','||ServiceCodes||',') like '%,33,%';

Итак, я написал этот код:

ICriteria cri = NHibernateSessionReader.CreateCriteria(typeof(ConfigTemplateList));
cri.Add(Restrictions.Like(Projections.SqlFunction("concat", NHibernateUtil.String, Projections.Property("ServiceCodes")), "%,33,%"));

Я получаю sql похоже:

select * from table where  (ServiceCodes) like '%,33,%';

Но это не то, что я хочу , как это сделать ??? спасибо!

1 Ответ

4 голосов
/ 21 апреля 2010

Вы были на правильном пути, но забыли добавить то, что хотели объединить.

Попробуйте это:

cri.Add(Restrictions.Like(
            Projections.SqlFunction("concat",
                                    NHibernateUtil.String,
                                    Projections.Constant(","), 
                                    Projections.Property("ServiceCodes"),
                                    Projections.Constant(",")),
        "%,33,%"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...