c# – QueryOver上的GroupBy SqlFunction
发布时间:2020-12-15 04:07:07 所属栏目:百科 来源:网络整理
导读:我有一个我使用的所有不同帐户名称前缀(a-z)的列表 var accounts = this.SessionManager.GetActiveSession().QueryOverAccount();var q = accounts.Select(Projections.Distinct( Projections.SqlFunction("substring",NHibernateUtil.String,Projections.Pr
我有一个我使用的所有不同帐户名称前缀(a-z)的列表
var accounts = this.SessionManager.GetActiveSession().QueryOver<Account>(); var q = accounts.Select(Projections.Distinct( Projections.SqlFunction("substring",NHibernateUtil.String,Projections.Property("Name"),Projections.Constant(1),Projections.Constant(1)))); 但是,我想要做的不是返回一个不同的列表,而是将前缀分组,并返回以该前缀开头的帐号数,但我不确定如何使用查询来执行组,因为它不像标准那样简单LINQ. 我使用QueryOver而不是Query的原因是因为某些原因,子串函数正在内存中执行而不是在数据库服务器上执行. 这就是我通常会这样做的方式 var prefixes = (from acc in this.SessionManager.GetActiveSession().Query<Account>() group acc by acc.Name.Substring(0,1) into grp select new { Prefix = grp.Key,Count = grp.Count() }); 编辑这是我尝试但我收到以下错误 表达式中无法识别的方法调用SqlFunction(“substring”,new [] {Property(“Name”),Constant(Convert(1)),Constant(Convert(1))}) var accounts = this.SessionManager.GetActiveSession().QueryOver<Account>().Select( Projections.Group<string>(x => Projections.SqlFunction("substring",Projections.Constant(1))),Projections.Count<string>(x => Projections.SqlFunction("substring",Projections.Constant(1))) ); 解决方法
如果其他所有方法都失败了,您可以使用Projections.SqlGroupProjection来完成!
var accounts = _busDb.Session.QueryOver<QueueEntity>() .Select( Projections.SqlGroupProjection( "SUBSTRING({alias}.Name,1) as FirstChar","SUBSTRING({alias}.Name,1)",new[] {"FirstChar"},new[] {NHibernateUtil.String}),Projections.Count("id")); 第一个参数是select中选择的内容,第二个参数是分组的内容,第三个参数是所选列的名称,第四个参数是所选数据的类型. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- OpenCV FileStorage类读写XML/YML文件
- Flash 平台音视频直播的实现
- c – char **&argument confusion
- Oracle Study 之--Oracle 11g Grid control安装(
- Vue仿手机qq的实例代码(demo)
- activiti学习资料(ProcessEngine引用服务及其依赖
- SQLite 多参数插入注意事项 insert multiple par
- c – 如果我真的想要继承STL容器,并且继承构造函
- 里氏代换原则(Liskov Substitution Principle,
- DevExpress GridView自动滚动效果
热点阅读