C# Linq:从2个datatable中选择,其中第一个表中的列id=第二个表中的列id
SQL将类似于C# Linq:从2个datatable中选择,其中第一个表中的列id=第二个表中的列id,c#,sql,linq,datatable,C#,Sql,Linq,Datatable,SQL将类似于 select GeneralData.id, GeneralData.name, GeneralData.last_name, Student.id from GeneralData Inner JOIN Student ON Student.id=GeneralData.id 一般数据是dt1 学生是dt2 我想要的是dt3 有一些建议吗?类似这样的建议: var query = from s in db.Student fr
select GeneralData.id, GeneralData.name, GeneralData.last_name, Student.id
from GeneralData Inner JOIN Student ON Student.id=GeneralData.id
一般数据是dt1
学生是dt2
我想要的是dt3
有一些建议吗?类似这样的建议:
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
};
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数据上下文如下所示:
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数据上下文:
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();
作为方法链:
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();
我认为您可能需要稍微修改一下SQL。您有一个交叉连接,然后是一个内部连接到您已经交叉连接的表之一(这可能会起作用,但没有意义)。我认为您可能需要稍微修复SQL。您得到了一个交叉连接,然后是一个到您已经交叉连接的一个表的内部连接(它可能工作,但没有意义)。