Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Използване на вградена функция за конвертиране на sql в критерии за nhibernate

Ако можете да приемете CAST вместо CONVERT (Почти съм сигурен, че можете) , тогава има по-просто решение.

Вместо да се обадите на „Свързани със SQL Server“ функция, нека извикаме абстракцията, която трябва да работи на повечето DB сървъри (на базата на поддържани NHibernate dilacts)

Projections.Cast(NHibernateUtil.String, Projections.Property(searchCol))

Така че Restriction използвани в WHERE клаузата може да изглежда така:

Restrictions
    .Like (
        Projections.Cast(NHibernateUtil.String, Projections.Property(searchCol))
        , "2009"
        , MatchMode.Anywhere
    )

И резултатът, генериран от NHibernate, използвайки диалекта на SQL Server, ще бъде:

WHERE cast( this_.theColumn as NVARCHAR(255)) like @p1 ... @p1=N'%2009%'



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да добавите файл с данни към база данни на SQL Server (T-SQL)

  2. TSQL - Как да използвам GO вътре в блок BEGIN .. END?

  3. Как да генерирате план за изпълнение в SQL Server

  4. Защо преобразуването от DATETIME в DATETIME2 изглежда променя стойността?

  5. Какво представлява типът данни SYSNAME в SQL Server?