Sql转 Linq 的问题

wulg10 2011-05-03 09:20:54
A表
id,name
B表
id,Aid,Jid


Select A.Id,Count(B.Id) from A Left Join B on B.Aid==A.id and B.Jid==3
Group By A.Id


用Linq左联时方法不对

from a in A join b in B on B.Aid equals a.Id && b.Jid==3 Group A by new{a.id,a.name}
into g Select new {g.Key.id,Count=g.Count()}


加粗的方法不对,请问Linq to sql 是怎么写的
...全文
260 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wulg10 2011-05-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 claymore1114 的回复:]

new { a.id, jid = 3 } 是匿名,这个 jid 是 随便命名的,不需要 前面定义,后面那个jid就是使用了这个jid。
[/Quote]
我也是这么认为的,但是还是报错。不知道有没有这方面的资料查阅?
claymore1114 2011-05-03
  • 打赏
  • 举报
回复
new { a.id, jid = 3 } 是匿名,这个 jid 是 随便命名的,不需要 前面定义,后面那个jid就是使用了这个jid。
wulg10 2011-05-03
  • 打赏
  • 举报
回复
new { a.id, jid = 3 } jid会报错,因为找不到jid
wulg10 2011-05-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 claymore1114 的回复:]

b.Jid 是什么类型? int类型吗?
[/Quote]
int 型
claymore1114 2011-05-03
  • 打赏
  • 举报
回复
b.Jid 是什么类型? int类型吗?
wulg10 2011-05-03
  • 打赏
  • 举报
回复
new { a.id, jid = 3 } equals new { id = b.Aid, jid = b.Jid }
claymore1114 2011-05-03
  • 打赏
  • 举报
回复
哪一句 报错了。
是不是 最后一句 Count 有问题?
select new { id= g.Key, count = g.Count() };
wulg10 2011-05-03
  • 打赏
  • 举报
回复
1L的,我对应进去也不对,是不是格式写的不对
xuexiaodong2009 2011-05-03
  • 打赏
  • 举报
回复
from a in A join b in B on B.Aid equals a.Id where (b.Jid==3 ) Group A by new{a.id,a.name}
into g Select new {g.Key.id,Count=g.Count()}
Join 链接只能使用equals 不能使用==
equals 运算符

join 子句执行同等联接。 换句话说,只能基于两个键之间的相等关系进行匹配。 其他类型的比较(例如,“greater than”或“not equals”)不受支持。 为了表明所有联接都是同等联接,join 子句使用 equals 关键字而不是 == 运算符。 equals 关键字只能用在 join 子句中,并且它与 == 运算符之间存在一个重要区别。 对于 equals,左键使用外部源序列,而右键使用内部源序列。 外部源仅在 equals 的左侧位于范围内,而内部源序列仅在其右侧位于范围内。
claymore1114 2011-05-03
  • 打赏
  • 举报
回复

var query = from a in A
join b in B
on new { a.id, jid = 3 } equals new { id = b.Aid, jid = b.Jid } into AB
from ab in AB.DefaultIfEmpty()
group ab by ab.id into g
select new { key = g.Key, count = g.Count(c=>c.Jid) };
wulg10 2011-05-03
  • 打赏
  • 举报
回复

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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