CreateCriteria 包含限制
CreateCriteria Contains Restriction
我正在使用条件 API 进行查询,并希望查询包含全文索引的列。
但是后来在 Criteria API 我一直没能成功找到 CONTAINS
.
有没有办法在 Criteria 中使用 CONTAINS
?我使用了 CreateQuery
并且能够让它工作,但想知道是否有办法使用 CreateCriteria
.
来完成它
非常感谢任何指向相同内容的指示,因为我已经搜索了很长时间。
我们可以使用 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>();
我正在使用条件 API 进行查询,并希望查询包含全文索引的列。
但是后来在 Criteria API 我一直没能成功找到 CONTAINS
.
有没有办法在 Criteria 中使用 CONTAINS
?我使用了 CreateQuery
并且能够让它工作,但想知道是否有办法使用 CreateCriteria
.
非常感谢任何指向相同内容的指示,因为我已经搜索了很长时间。
我们可以使用 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>();