EF之连表操作

baidu_27549073 2016-12-20 03:15:32
UserChangeRecords.Where(c => c.UserID == userid)
.Join(ChangeRecords, a => a.RecordIndex, b => b.ID, (a, b) => new { a.ChangeMoney, b.RoomID })
.Join(GameRoomInfos, a => a.RoomID, b => b.RoomID, (a, b) => new { a.ChangeMoney, b.GameNameID })
.Join(GameInfos, a => a.GameNameID, b => b.NameID, (a, b) => new { b.ComName, a.ChangeMoney })
.GroupBy(a => a.ComName)
.Select(a => new { Summoney = a.Sum(c => c.ChangeMoney),ComName= a.Key });
我写了个如上的EF查询,解析不出来。也查不到转成什么sql了。
之前我碰到这些都是直接写的sql.今天有个新想法想试试,结果就EF这一块就这样了。网上关于EF连表的都只是写简单的Sql,关于join和groupby的都不是很详细
...全文
236 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_27549073 2016-12-20
  • 打赏
  • 举报
回复
引用 2 楼 dongxinxi 的回复:
你这样写的话全是inner join,left join写法不一样
我不静态化,直接写的话是没有问题的
baidu_27549073 2016-12-20
  • 打赏
  • 举报
回复
引用 2 楼 dongxinxi 的回复:
你这样写的话全是inner join,left join写法不一样
public static IEnumerable<TChangeRecordUser> UserChangeRecords; //public static IEnumerable<TChangeRecord> ChangeRecords; //public static IEnumerable<TGameRoomInfo> GameRoomInfos; //public static IEnumerable<TGameNameInfo> GameInfos; static GameRecordRepository() { var ef = DbContentFactory.CreateDbContext(); UserChangeRecords = ef.TChangeRecordUser; //ChangeRecords = ef.TChangeRecord; //GameRoomInfos = ef.TGameRoomInfo; //GameInfos = ef.TGameNameInfo; } 我这样声明EF会不会有问题。“System.OutOfMemoryException”类型的异常在 System.Data.Entity.dll 中发生,但未在用户代码中进行处理。报这个错
baidu_27549073 2016-12-20
  • 打赏
  • 举报
回复
“System.OutOfMemoryException”类型的异常在 System.Data.Entity.dll 中发生,但未在用户代码中进行处理 报的这个错
  • 打赏
  • 举报
回复
你这样写的话全是inner join,left join写法不一样
  • 打赏
  • 举报
回复
linq写得没问题,看有没报错,连接的字段都对了没,3个join可以逐步注释掉,就能看出问题了

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧