如何使用Group By的Linq查询获得4个表的关系 [英] How to Use Linq Query Using Group By for 4 Table's Relationship

查看:155
本文介绍了如何使用Group By的Linq查询获得4个表的关系的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有4张表,如下所示。

表1 

a1(主键)
a2
a3
................
表2

b1(主键)
a1(foreiegnkey)
b2
b3
.................
表3

c1(主键)
b1(foreiegnkey)
c2
c3
...................
表4

d1(主键)
c1(foreiegnkey)
d2
d3
.....................


var p = 来自 r db.Table1
其中 r.a1 == 转换 .ToInt32(会话[ idforexcelpage]。ToString())
join a db.Table2 on r.Table1等于a.Table2
join b db.Table3 on a.Table2等于b.Table3
加入 e db.Table4 on b.Table3等于e.Table4
group a by new {a.b2,e.d3,b.c3,e.d2} < span class =code-keyword> into g
select new
{

InviteeName = g。密钥 .b2
文字 = g。 .d3,
答案= g。 .c3,
电子邮件= g。 .d2

};









这是我的查询和表格信息mation。



但是使用这个查询我不会给出我的例外输出,这里我想从表b2的字段b2中获取组。



但我不对它进行分组。可以帮助我解决这个问题..?



提前谢谢。

解决方案

如果你只想按列b2分组,那么



  var  p = 来自 r   db。表1 
其中 r.a1 == Convert.ToInt32(会话[ idforexcelpage]。ToString())
join a in r.Table1上的db.Table2等于a.Table2
join b in db a.Table2上的.Table3等于b.Table3
join e in db.Table4 on b.Table3 equals e.Table4
group a by new a.b2 into g
选择 new
{InviteeName = g.Key};


I have 4 tables ,Which are as per below.

Table1

a1(primarykey)
a2
a3
................
Table2

b1 (primarykey)
a1(foreiegnkey)
b2
b3
.................
Table3

c1(primarykey)
b1(foreiegnkey)
c2
c3
...................
Table4

d1(primarykey)
c1(foreiegnkey)
d2
d3
.....................


var p = from r in db.Table1
        where r.a1 == Convert.ToInt32(Session["idforexcelpage"].ToString())
        join a in db.Table2 on r.Table1 equals a.Table2
        join b in db.Table3 on a.Table2 equals b.Table3
        join e in db.Table4 on b.Table3 equals e.Table4
        group a by new { a.b2,e.d3,b.c3,e.d2 } into g
        select new
               {

                            InviteeName =g.Key.b2
                            Text = g.Key.d3,
                            Answer = g.Key.c3,
                            Email = g.Key.d2

                };





Here is my Query and table information.

But use with this query i not give my Excepted Output,Here I want group from column b2 which is field of Table2.

But i don't grouping it.Can anuone Help me to solve this Isssue..?

Thanks in advance.

解决方案

if you want to group by column b2 only, then

var p = from r in db.Table1
        where r.a1 == Convert.ToInt32(Session["idforexcelpage"].ToString())
        join a in db.Table2 on r.Table1 equals a.Table2
        join b in db.Table3 on a.Table2 equals b.Table3
        join e in db.Table4 on b.Table3 equals e.Table4
        group a by new a.b2 into g
        select new
               {InviteeName =g.Key};


这篇关于如何使用Group By的Linq查询获得4个表的关系的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆