In simple SQL we can write queries where the field names are case insensitive. For example, we want to query on Student
table and it has one field called Name
. We can write a query like this (in MS SQL):
s开发者_开发知识库elect * from Student where name = "John"
See here we have used name
instead of Name
, but it still runs properly.
But when I write a criteria in nHibernate like this
session.createCriteria("Student")
.Add(Restrictions.Eq("name","John")).List()
It fails with the error could not resolve property: name of Student
.
Is there any way we can make the field/property names case insensitive in criteria as direct SQL queries.
Thanks
Short answer: you can't. Property names are case sensitive.
Long answer: you can parse your user's input and use reflection to find the correct property names.
When doing a criteria query you are querying POCOs and their properties - and of course names in C# are case sensitive. As far as I know, HQL queryies are case sensitive too, so you probably are out of luck.
精彩评论