Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq asp.net mvc多表联接,groupby子句返回重复项_Linq_Entity Framework_Join_Group By_Linq To Entities - Fatal编程技术网

Linq asp.net mvc多表联接,groupby子句返回重复项

Linq asp.net mvc多表联接,groupby子句返回重复项,linq,entity-framework,join,group-by,linq-to-entities,Linq,Entity Framework,Join,Group By,Linq To Entities,我正在使用联接从多个表中获取数据,表映像的下面附着了一个,这导致了问题。此表记录了测试的状态,我想要进程id为11的测试,但由于其跟踪表多行重新合并,这会导致一条记录重复三次。在我看来,我正在尝试在bookingdid上应用groupby,并获取最大trackid,这是表的唯一标识,但我无法做到,我的linq查询也在下面。任何帮助 以下是我的linq查询: using (var db = new bc_limsEntities()) {

我正在使用联接从多个表中获取数据,表映像的下面附着了一个,这导致了问题。此表记录了测试的状态,我想要进程id为11的测试,但由于其跟踪表多行重新合并,这会导致一条记录重复三次。在我看来,我正在尝试在bookingdid上应用groupby,并获取最大trackid,这是表的唯一标识,但我无法做到,我的linq查询也在下面。任何帮助

以下是我的linq查询:

using (var db = new bc_limsEntities())
            {
                var result = (from d in db.dc_tpatient_bookingd
                              join m in db.dc_tpatient_bookingm on d.bookingid equals m.bookingid into a
                              from m in a.DefaultIfEmpty()
                              join p in db.dc_tpatient on m.prid equals p.prid into b
                              from p in b.DefaultIfEmpty()
                              join t in db.dc_tp_test on d.testid equals t.TestId into c
                              from t in c.DefaultIfEmpty()
                              //join mt in db.dc_tp_tmethod on t.TestId equals mt.testid into j
                              //from mt in j.DefaultIfEmpty()
                              // join gm in db.dc_tp_groupm on t.GroupId equals gm.GroupId into e
                              //from gm in e.DefaultIfEmpty()
                              join pn in db.dc_tpanel on m.panelid equals pn.panelid into f
                              from pn in f.DefaultIfEmpty()
                              join og in db.dc_tp_organization on m.clientid equals og.OrgId into g
                              from og in g.DefaultIfEmpty()
                              join w in db.dc_tp_ward on m.wardid equals w.wardid into h
                              from w in h.DefaultIfEmpty()
                              join tb in db.dc_tp_branch on m.BranchID equals tb.BranchID into i
                              from tb in i.DefaultIfEmpty()
                              join bd in db.dc_tp_refdoctors on m.doctorid equals bd.doctorid into k
                              from bd in k.DefaultIfEmpty()
                              join dt in db.dc_tstatustrack on d.bookingdid equals dt.bookingdid into l
                              from dt in l.DefaultIfEmpty()







                              where d.ProcessID == 5


                              && t.SubdepartmentId == subDepartmentID








                                  && fromDate <= m.enteredon && m.enteredon <= DateTime.Now

                                  && d.status != "H"

                                  && DateTime.Now > d.deliverytime

                                  && dt.processid == 11




                              select new { d, p, m, t, bd, pn, dt }).Distinct().ToList();

任何帮助都将不胜感激

您是否尝试过:将dt按dt分组。bookingdid转换为mnoi did,但我不知道如何在之后的行上迭代以获取数据
group new { d, p, m, t, bd, pn, dt } by new { dt.bookingdid } into mno