Как получить результаты, которые начинаются с определенной буквы? - PullRequest
0 голосов
/ 06 июля 2010

У меня есть метод, подобный следующему, который мне нужен, чтобы вернуть все группы, начинающиеся с буквы, которую я передаю:

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 ]

2 голосов
/ 06 июля 2010

Просто глядя на документы, я подозреваю вы хотите:

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

но я не использовал NHibernate целую вечность ...

1 голос
/ 06 июля 2010

Я думаю, что это

SqlExpression.Like<CompanyGroupInfo>(g => g.Name, letter + "%")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...