sql >> Database teknologi >  >> RDS >> Sqlserver

Brug af indbygget sql-konverteringsfunktion i nhibernate-kriterier

Hvis du kunne acceptere CAST i stedet for CONVERT (Og det er jeg næsten sikker på, at du kan) , så er der en mere ligetil løsning.

I stedet for at kalde "SQL-serverrelateret" funktion, lad os kalde abstraktionen, som burde virke på de fleste DB-servere (baseret på understøttede NHibernate-dilacter)

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

Restriction bruges i en WHERE klausul kunne se sådan ud:

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

Og resultatet genereret af NHibernate ved brug af SQL Server-dialekten ville være:

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



  1. Fjern de sidste to tegn i en kolonne i MySQL

  2. ORA-29481:Implicitte resultater kan ikke returneres til klienten, når der kaldes Oracle 12c-procedure fra JDBC

  3. Indsæt array-indhold i databasen - php

  4. Hierarkisk SQL-spørgsmål