如何按字符串属性的长度限制查询?例如。类似的东西:
NHSession.QueryOver<Customer>()
.Where(p => p.RegistryCode.Length == 8)
答案 0 :(得分:4)
这样的事情可能会成功
NHSession.QueryOver<Customer>()
.Where(
Restrictions.Eq(
Projections.SqlFunction("length", NHibernateUtil.String,
Projections.Property<Customer>(x => x.RegistryCode)),
8
)
)
答案 1 :(得分:1)
我应该使用这个“NHibernateUtil.Int16”类型,而不是“NHibernateUtil.Int16”类型,因为'length'参数应该始终是一个数字,而不是一个字符串。
这样的事情:
NHSession.QueryOver<Customer>()
.Where(
Restrictions.Eq(
Projections.SqlFunction("length", NHibernateUtil.Int16,
Projections.Property<Customer>(x => x.RegistryCode)),
8
)
)