我有一个类似于以下的方法,我需要返回所有以我传入的字母开头的组:
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 :(得分:2)
只是查看文档,我怀疑你想要:
SqlExpression.Like<CompanyGroupInfo>(g => g.Name, letter, MatchMode.Start)
但是我已经很久没有使用NHibernate ......
答案 1 :(得分:1)
我想这个
SqlExpression.Like<CompanyGroupInfo>(g => g.Name, letter + "%")