我们如何在nHibernate中的条件中使用不区分大小写的propertyName

时间:2010-11-16 09:23:45

标签: nhibernate criteria

在简单的SQL中,我们可以编写字段名称不区分大小写的查询。例如,我们想要查询Student表,它有一个名为Name的字段。我们可以编写这样的查询(在MS SQL中):

select * from Student where name = "John"

在这里,我们使用name代替Name,但它仍然可以正常运行。

但是当我在nHibernate中写这样的标准时,

session.createCriteria("Student")
.Add(Restrictions.Eq("name","John")).List()

失败并显示错误could not resolve property: name of Student

我们是否可以通过直接SQL查询使标准中的字段/属性名称不区分大小写。

由于

2 个答案:

答案 0 :(得分:1)

简短的回答:你做不到。属性名称区分大小写。

答案很长:您可以解析用户的输入并使用反射来查找正确的属性名称。

答案 1 :(得分:0)

在执行条件查询时,您正在查询POCO及其属性 - 当然,C#中的名称区分大小写。据我所知,HQL查询也区分大小写,所以你可能运气不好。