sql >> Databáze >  >> RDS >> Sqlserver

Použití vestavěné funkce sql Convert v kritériích nhibernate

Pokud byste mohli přijmout CAST místo CONVERT (A jsem si téměř jistý, že můžete) , pak je tu jednodušší řešení.

Místo volání „Související se serverem SQL“ funkci, nazvěme abstrakci, která by měla fungovat na většině DB serverů (na základě podporovaných NHibernate dilacts)

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

Tedy Restriction používá se v WHERE klauzule by mohla vypadat takto:

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

A výsledek generovaný NHibernate pomocí SQL Server dialektu by byl:

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



  1. Chyba:SQLSTATE[HY000] [2002] Žádný takový soubor nebo adresář

  2. SQL UPDATE v hodnosti SELECT nad větou oddílu

  3. Porovnání dvou bitových masek v SQL, abyste zjistili, zda se některý z bitů shoduje

  4. Co je datový typ MLSLABEL Oracle?