EF GroupJoin
来源:互联网 发布:淘宝店铺推广语 编辑:程序博客网 时间:2024/04/30 22:36
左外联结,GroupJoin的一段示例代码:
var data = keys.GroupJoin( db.AggSp1Hours. Where(o => o.ShowId == sid && o.TimeSlot >= dtMin && o.TimeSlot < dtMax). GroupBy(o => new { o.Product.Name, o.TimeSlot }). Select(o => new ReportItem { Key = new ReportKey() { Name = o.Key.Name ?? sName, dt = o.Key.TimeSlot }, Value = o.Sum(a => (double?)a.Amount ?? 0) }), key => key, agg => GetRefKey(keys, agg.Key), (key, agg) => new ReportItem { Label = key.dt.ToString("HH:00"), Name = key.Name, Value = agg.Sum(a => a.Value) });
这个key=>key和agg=>key,从值上看是相等的,但是引用不同,因为在select new的时候不能把agg的key赋值为另一个引用对象。
结果在groupjoin的对比中,两个key就不想等不能进行期望的左外联结。即便重写key对象的Equals方法也不行。
无奈,便通过keys再找到与agg中的key对应的引用key来作为键与key=>key进行比对,就可以了。
感觉有些万恶啊。
0 0
- EF GroupJoin
- Linq Join and GroupJoin.
- ef
- EF
- EF
- EF
- EF
- EF
- EF总结--EF简介
- 【EF】浅谈EF
- Linq 使用GroupJoin和DefaultIfEmpty实现左联接
- ERF EF
- EF 总结
- VS2010 EF
- EF Migrations
- EF二三事
- EF TMD
- ef学习
- 【linux】linux根文件系统制作
- plsql找不到数据库名的解决办法
- 分布式系统之CAP理论 - DM张朋飞
- datagridview里面的checkbox全选和取消全选
- boost::unordered_map与stl::map
- EF GroupJoin
- bootstrap
- SQL中的 UNION 和 UNION ALL 操作符的使用
- 黑马程序员_数组
- Spring+Mybatis批量处理数据
- 数据库表设计
- android环境配置
- 在Struts2中valuestack,stackContext,ActionContext.之间的关系
- Android软键盘遮挡的四种解决方案