当前位置:编程学习 > C#/ASP.NET >>

NHibernate查询的问题

想做的事情很简单,两个字段相减之后求合的操作,
SQL语句描述:
SELECT SUM(t.OUTTIME-t.INTIME) FROM TABLE t
用NHibernate的DetachedCriteria查询方式怎么实现

//我自己写的,不会了
var query = DetachedCriteria.For(typeof(Table));
query.SetProjection(Projections.Sum(" "));//这里要怎么去实现减法操作
object obj = query.GetExecutableCriteria(context._session).UniqueResult();
求大神指教 NHibernate DetachedCriteria 两个字段差求和 --------------------编程问答-------------------- 难道一定要写HQL语句? --------------------编程问答--------------------
人咧 --------------------编程问答-------------------- 抱歉,木有用过Criteria方式。只用过HQL,或者基于LINQ的实现。
楼主真要想用Criteria,可以参考一下java的Hibernate,毕竟是移植过来的,用起来很像。 --------------------编程问答--------------------
引用 3 楼 lixiaolian7 的回复:
抱歉,木有用过Criteria方式。只用过HQL,或者基于LINQ的实现。
楼主真要想用Criteria,可以参考一下java的Hibernate,毕竟是移植过来的,用起来很像。


query.SetProjection(Projections.Sum<Agtruck>(c=>c.Outendtime-c.Inendtime));
IList lst = query.GetExecutableCriteria(context._session).List();
return lst;

我在试着这么写的时候抛错了 求指教啊 
Could not determine member from (c.Outendtime - c.Inendtime) --------------------编程问答-------------------- 如果只是使用LINQ 的方式怎么实现2个字段差的求和呢?形如sum(a-b) ,继续求教3楼 --------------------编程问答-------------------- 我觉得
在nh中linq只能做到简单查询(例如where a=xx and b=xx)
所以你还得使用hql。 --------------------编程问答-------------------- var Details = data.CreateQuery<SellOrdersDetail>();
                        var sum = Details.Sum(a => a.Money - a.Price); --------------------编程问答-------------------- NHibernate怎么用 --------------------编程问答--------------------
引用 8 楼 ns261960314 的回复:
NHibernate怎么用

我也是新手,不熟 --------------------编程问答--------------------
引用 6 楼 lixiaolian7 的回复:
我觉得
在nh中linq只能做到简单查询(例如where a=xx and b=xx)
所以你还得使用hql。


有道理,确实我感觉它只能实现很简单的功能,很多东西它都不支持
我决定做一个视图,把需要的数据放到视图里,不去写复杂的查询语句了 --------------------编程问答--------------------
引用 7 楼 ycg_893 的回复:
var Details = data.CreateQuery<SellOrdersDetail>();
                        var sum = Details.Sum(a => a.Money - a.Price);


data是什么类型?DataServiceContext?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,