如何获得以某个字母开头的结果?

时间:2010-07-06 09:29:34

标签: c# nhibernate

我有一个类似于以下的方法,我需要返回所有以我传入的字母开头的组:

public IList<CompanyGroupInfo> GetGroupByQuery(string letter)
{
    IList<CompanyGroupInfo> result = null;

    result = _session
        .CreateCriteria<CompanyGroupInfo>()
        .Add(SqlExpression.Like<CompanyGroupInfo>(g => g.Name, letter))
        .List<CompanyGroupInfo>();

    return (result.Count > 0) ? result[0] : null;
}

我是NHibernate的新手,所以我真的不知道该怎么做。在我看来,如果有SqlExpression.StartsWith方法,那将是理想的,但事实并非如此。是否像修改表达式一样简单

        .Add(SqlExpression.Like<CompanyGroupInfo>(g => g.Name, letter))

变得类似

        .Add(SqlExpression.Like<CompanyGroupInfo>(g => g.Name.StartsWith(letter)))

有人可以指出我正确的方向吗?感谢

2 个答案:

答案 0 :(得分:2)

只是查看文档,我怀疑你想要

SqlExpression.Like<CompanyGroupInfo>(g => g.Name, letter, MatchMode.Start)

但是我已经很久没有使用NHibernate ......

答案 1 :(得分:1)

我想这个

SqlExpression.Like<CompanyGroupInfo>(g => g.Name, letter + "%")