2012-03-15 70 views
0

列ID的SQL会是这样的LINQ的:从2数据表,其中从第一个表列ID =从第二个表

select GeneralData.id, GeneralData.name, GeneralData.last_name, Student.id 
from GeneralData Inner JOIN Student ON Student.id=GeneralData.id 

GeneralData被DT1 学生DT2 我想要得到的是DT3 选择有一些建议?

+1

我想你可能需要修正你的SQL一点。你有一个交叉连接,然后是一个内部连接到你已经交叉连接的一个表(它可能工作,但没有意义)。 – 2012-03-15 14:15:18

回答

1
var query = 
      from s in db.Student 
      from g in db.GeneralData 
      where s.id == g.id 
      select new 
      { 
       g.id, 
       g.name, 
       g.last_name 
      }; 
1

尝试了这一点:

from t1 in db.Table1 
join t2 in db.Table2 on t1.field equals t2.field 
select new { t1.field2, t2.field3} 
1
var query = from data in dc.GeneralData 
join stud in dc.Students in data.id equals stud.id 
select new 
{ 
data.id, data.Name, data.LastName, stud.id 
}; 
1

像这样:

var result= (
     from general in db.GeneralData 
     join student in db.Student 
      on general.id=student.id 
     select new 
     { 
      general.id, 
      general.name, 
      general.last_name, 
      studentId=student.id 
     } 
    ); 

其中db是LINQ数据上下文

1

作为方法链:

dt2.Where(s=>s.id == 1) 
.Select(s=> new {Stud = s, Data= dt1.Where(g=>g.id == s.id)}).First() 
.Select(q=> new {q.Stud.id, q.Data.name, q.data.last_name}).FirstOrDefault(); 
相关问题