Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 NHibernate. Добавление функции в диалект  [new]
maratoss
Member

Откуда: от верблюда
Сообщений: 137
Подскажите пожалуйста, можно ли сделать данный запрос на критериях?

Добавил функции в диалект:
     internal class MyOracleDialect : NHibernate.Dialect.Oracle10gDialect
     {
         public MyOracleDialect()
         {
             RegisterFunction("packedString", new StandardSQLFunction("w_common.f_pack_str"));
             RegisterFunction("concat", new StandardSQLFunction("concat"));
         }
     }


Запрос HQL:
IList<Part> parts = 
     session.CreateQuery("from Part p where p.CompactName like concat(packedString(:p), '%')")
               .SetParameter("p", "ЗКС15.")
               .List<Part>();


Вот сгенеренный SQL:
 SELECT PART0_.ID            AS ID1_,
        PART0_.RN_ISPOB      AS RN2_1_,
        PART0_.OBOZN         AS OBOZN1_,
        PART0_.NAIM          AS NAIM1_,
        PART0_.PACK_OBOZN    AS PACK5_1_,
        PART0_.MODEOFEXECUTE AS MODEOFEX6_1_,
        PART0_.ORDERNAME     AS ORDERNAME1_,
        PART0_.ROUTE         AS ROUTE1_
   FROM W_ZEX003.MV_PART PART0_
  WHERE PART0_.PACK_OBOZN LIKE CONCAT(W_COMMON.F_PACK_STR(:P0), '%');
 :P0 = '??????15.' [ TYPE :STRING(6) ]
18 дек 12, 10:45    [13647295]     Ответить | Цитировать Сообщить модератору
 Re: NHibernate. Добавление функции в диалект  [new]
SolYUtor
Member

Откуда:
Сообщений: 948
maratoss,

не уверен, но подозреваю что для этого придётся сделать свой ICriterion.
18 дек 12, 11:11    [13647416]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить