当前位置: 首页 > 编程语言 > C#

NHibernate中有算术运算预测吗?分享

时间:2023-04-10 14:40:10 C#

NHibernate中有算术运算预测吗?我试图从NHibernate获取此SQL:SELECTSUM(color_pages)*SUM(total_pages)FROMconnector_log_entryGROUPBYdepartment_name但我无法在任何地方找到任何算术运算(*)投影。到目前为止,这是我的代码:Session.QueryOver().SelectList(list=>list.SelectGroup(m=>m.DepartmentName).WithAlias(()=>dto.Department).Select(Projections.Sum(m=>m.TotalPages))//.Select(Projections.Sum(m=>m.ColorPages)).WithAlias(()=>dto.TotalColorPercentage)).TransformUsing(Transformers.AliasToBean());算术运算符可以使用VarArgsSQLFunctionSQL函数进行条件查询。在您的特定情况下,这看起来像:Session.QueryOver().SelectList(list=>list.SelectGroup(m=>m.DepartmentName).WithAlias(()=>dto.Department).Select(Projections.SqlFunction(新的VarArgsSQLFunction("(","*",")"),NHibernateUtil.Int32,Projections.Sum(m=>m.TotalPages),Projections.Sum(m=>m.ColorPages))).WithAlias(()=>dto.TotalColorPercentage)).TransformUsing(Transformers.AliasToBean());此技术将字符串直接注入到生成的SQL中,因此您需要确保底层数据库支持您使用的运算符。LINQ或HQL很简单,但Criteria和QueryOver没有针对它进行优化(你必须使用SQL投影)不难:以上是C#学习教程:NHibernate中有算术运算预测吗?如果分享的内容对你有用,需要了解更多C#学习教程,希望你多多关注——fromentryinSession.Query()groupentrybyentry.DepartmentNameintogselectg.Sum(e=>e.ColorPages)*g.Sum(e=>e.TotalPages)本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: