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/2/image-processing/2.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查询。两张桌子_Linq_Linq To Dataset - Fatal编程技术网

LINQ查询。两张桌子

LINQ查询。两张桌子,linq,linq-to-dataset,Linq,Linq To Dataset,我有两张桌子:用户-汽车: **User table: ID - Name** ID:1 Name:Iam ID:2 Name:Louis **Car table: ID - Car** ID:2 Car:BMW ID:2 Car:Ford ID:2 Car:Strange 我想做一个查询,显示所有用户(有车或没有车)和他们的车。我正在使用LINQ来创建数据集 我的问题是: var query = from user in ObjDT_Usua

我有两张桌子:用户-汽车:

**User table: ID - Name**
ID:1 Name:Iam
ID:2 Name:Louis

**Car table: ID - Car**
ID:2 Car:BMW
ID:2 Car:Ford
ID:2 Car:Strange
我想做一个查询,显示所有用户(有车或没有车)和他们的车。我正在使用LINQ来创建数据集

我的问题是:

var query =
                        from user in ObjDT_Usuario.AsEnumerable()
                        join car in ObjDT_Vehiculos.AsEnumerable()
                        on user.Field<string>("ID") equals car.Field<string>("ID")
                        orderby user.Field<string>(campo)
                        select new UserReport
                         {
                            Name = user.Field<string>("Name"),
                            Car = car.Field<string>("Car")
                        };
var查询=
来自ObjDT_Usuario.AsEnumerable()中的用户
在ObjDT_Vehicleulos.AsEnumerable()中加入汽车
on user.Field(“ID”)等于car.Field(“ID”)
orderby user.Field(campo)
选择新用户报告
{
Name=user.Field(“Name”),
汽车=汽车场(“汽车”)
};
此查询是正确的,但仅显示在user.Field(“ID”)上拥有car:
的用户等于car.Field(“ID”)


有人可以帮我。谢谢。

这是因为您正在申请EquiJoin。您需要LeftJoin

 from user in ObjDT_Usuario.AsEnumerable()
                    join car in ObjDT_Vehiculos.AsEnumerable()
                    on user.Field<string>("ID") equals car.Field<string>("ID") into userxs
                    from u in userxs.DefaultIfEmpty(
                    orderby u .Field<string>(campo)
                    select new UserReport
                     {
                        Name = user.Field<string>("Name"),
                        Car = u.Field<string>("Car")
                    };
ObjDT_Usuario.AsEnumerable()中的用户 在ObjDT_Vehicleulos.AsEnumerable()中加入汽车 on user.Field(“ID”)等于car.Field(“ID”)到userxs 来自userxs.DefaultIfEmpty中的u( 订购方u.字段(坎波) 选择新用户报告 { Name=user.Field(“Name”), Car=u场(“Car”) };
请忽略输入错误。我不在我的笔记本电脑上。我希望你有一个想法,看看这是否有帮助:这是一个评论,不是一个解决方案。非常感谢你的帮助。只是:“orderby u.Field(campo)返回Null异常->orderby usuario.Field(campo)和Car=u!=Null?u.Field(“Car”):默认值(字符串)