2010-07-06 91 views
0

我有类似如下,我需要回到与我传递的字母开头的所有组的方法:如何获得以特定字母开头的结果?

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

有人可以请点我在正确的方向?由于

+0

可能重复的[如何获得与NHibernate的第一个字母的清晰列表](http://stackoverflow.com/questions/3184957/how-to-get-a-distinct-list-of-first-letters-with-nhibernate ) – 2010-07-06 09:33:43

+1

@Ekberg甚至不会重复。 – chrissie1 2010-07-06 09:43:30

回答

2

只是在看文档,我怀疑想:

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

,但我还没有使用的NHibernate的年龄......

1

我觉得这

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