Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.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/5/sql/85.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
C# Linq:从2个datatable中选择,其中第一个表中的列id=第二个表中的列id_C#_Sql_Linq_Datatable - Fatal编程技术网

C# Linq:从2个datatable中选择,其中第一个表中的列id=第二个表中的列id

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

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
            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。您得到了一个交叉连接,然后是一个到您已经交叉连接的一个表的内部连接(它可能工作,但没有意义)。