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>();