NHibernate和整数一样

AGu*_*ald 2 nhibernate sql-like

我有一个NHibernate搜索函数,我接收整数并希望返回结果,其中至少开始与整数重合,例如

收到整数:729
返回:729445,7291等

数据库列的类型为int,Foo的属性"Id"也是如此.

int id = 729;

var criteria = session.CreateCriteria(typeof(Foo))

criteria.Add(NHibernate.Criterion.Expression.InsensitiveLike("Id", id.ToString() + "%"));

return criteria.List<Foo>();
Run Code Online (Sandbox Code Playgroud)

确实导致错误(无法将参数字符串转换为int32).代码,解决方法或其他解决方案是否有问题?

小智 8

这个怎么样:

int id = 729;

var criteria = session.CreateCriteria(typeof(Foo))
criteria.Add(Expression.Like(Projections.Cast(NHibernateUtil.String, Projections.Property("Id")), id.ToString(), MatchMode.Anywhere));

return criteria.List<Foo>();
Run Code Online (Sandbox Code Playgroud)