我使用条件API进行查询,并希望对包含全文索引的列进行查询。
但是,在条件API中,我未能成功地找到CONTAINS。
在标准中有使用CONTAINS的方法吗?我使用了CreateQuery,并且能够让它正常工作,但我想知道是否有办法使用CreateCriteria完成它。
任何指向相同的指点都是非常感谢的,因为我从很长一段时间以来一直在寻找这个。
发布于 2017-08-21 13:55:44
我们可以使用Criterion.Expresssion.Sql.生成自定义SQL部件。(有一个example how to)
在我们的情况下可能就是这样
var searchedValue = "searched value";
var session = ... // get session
// dynamic way to construct some SQL part
var criterion = NHibernate.Criterion.Expression
.Sql(" CONTAINS ({alias}.LastName, ? ) ",
new object[] { searchedValue},
new IType[] { NHibernate.NHibernateUtil.String});
// our criteria
var criteria = session.CreateCriteria<MyEntity>();
// with our FULLTEXT filter
criteria.Add(criterion);
// result..
var list = criteria
.SetFirstResult(0) // paging
.SetMaxResults(10)
.List<MyEntity>();https://stackoverflow.com/questions/45794178
复制相似问题