我一直在互联网上搜索,找不到关于如何使用nhibernate 3.0的queryover的示例
例如,我想在queryover的where子句上使用字符串函数
前任:

var item = Query.Where(x => x.Name.ToLower() == name.ToLower()).FirstOrDefault();

但这是行不通的,因为nhibernate无法理解ToLower,那么如何以可能的方式扩展方言呢?

最佳答案

session.QueryOver<Foo>()
    .Where(Restrictions.Eq(
        Projections.SqlFunction("lower", NHibernateUtil.String,
            Projections.Property<Foo>(x => x.Name)),
        name.ToLower()))

应该让你像where lower(Name) = @p0这样的SQL

关于nhibernate - 我可以在NHibernate QueryOver中使用SQL函数吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5966986/

10-12 06:44