Karron's profile咸鱼翻身还是咸鱼(技术,软件,linux,vim...PhotosBlogListsMore Tools Help

Blog


    September 27

    Castle中使用Sql表达式

    平时用Castle进行开发, 一般使用Criteria或者hql, Criteria对于不定参数很方便.  但是有时候需要用到一些sql函数, 这个时候criteria就不太方便了, 不过还好的是, 我们可以直接使用sql表达式.

    比如我们数据库里面某个字段是int类型的, 但是界面上需要查询, 这个时候我们一般要将其转化成string才能查询, 不然Castle会报类型不匹配的错误. 示例代码如下. 分别有三个参数, 看代码便明白, 需要注意的仅仅是最后一个类型, 需要用NHibernate的数据类型.

    DetachedCriteria cri = DetachedCriteria.For<Quote>();

    if (!string.IsNullOrEmpty(txtSubmission.Text))
          cri.Add(Expression.Sql("str(SubmissionNumber) like ?", "%" + txtSubmission.Text + "%", NHibernateUtil.String));