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”):默认值(字符串)