在简单的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查询使标准中的字段/属性名称不区分大小写。
由于
答案 0 :(得分:1)
简短的回答:你做不到。属性名称区分大小写。
答案很长:您可以解析用户的输入并使用反射来查找正确的属性名称。
答案 1 :(得分:0)
在执行条件查询时,您正在查询POCO及其属性 - 当然,C#中的名称区分大小写。据我所知,HQL查询也区分大小写,所以你可能运气不好。