如何将linq left join 的写法转换成 limq left join lambad的写法
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/20 21:57:37
如何将linq left join 的写法转换成 limq left join lambad的写法
var query = from person in people join pet in pets on person equals pet.Owner into gj from subpet in gj.DefaultIfEmpty() select new { person.FirstName,PetName = (subpet == null String.Empty :subpet.Name) };
以上是在msdn社区上搜所得例子
但是我不习惯这样写 我想写成
var query = people.join(pest,pets=>pets.owner,person=>person.)这样的形式
IList StuList = new List();
#region Addstudents
Student Me = new Student();
Me.Name = "haojun";
Me.InTime = DateTime.Now;
Me.ClassID = 1;
Student Her = new Student();
Her.ClassID = 1;
Her.Gender = 2;
Her.Name = "ruegy";
Student Him = new Student();
Him.ClassID = 2;
Him.Name = "jim";
StuList.Add(Me);
StuList.Add(Her);
StuList.Add(Him);
#endregion
IList ClassList = new List();
#region AddClass
MyClass One = new MyClass();
One.ClassID = 1;
One.ClassName = "x-man";
MyClass Tow = new MyClass();
Tow.ClassID = 3;
Tow.ClassName = "KingKong";
ClassList.Add(One);
ClassList.Add(Tow);
#endregion
var query = from person in people join pet in pets on person equals pet.Owner into gj from subpet in gj.DefaultIfEmpty() select new { person.FirstName,PetName = (subpet == null String.Empty :subpet.Name) };
以上是在msdn社区上搜所得例子
但是我不习惯这样写 我想写成
var query = people.join(pest,pets=>pets.owner,person=>person.)这样的形式
IList StuList = new List();
#region Addstudents
Student Me = new Student();
Me.Name = "haojun";
Me.InTime = DateTime.Now;
Me.ClassID = 1;
Student Her = new Student();
Her.ClassID = 1;
Her.Gender = 2;
Her.Name = "ruegy";
Student Him = new Student();
Him.ClassID = 2;
Him.Name = "jim";
StuList.Add(Me);
StuList.Add(Her);
StuList.Add(Him);
#endregion
IList ClassList = new List();
#region AddClass
MyClass One = new MyClass();
One.ClassID = 1;
One.ClassName = "x-man";
MyClass Tow = new MyClass();
Tow.ClassID = 3;
Tow.ClassName = "KingKong";
ClassList.Add(One);
ClassList.Add(Tow);
#endregion
LZ没看MSDN啊,“左外部联接操作没有专用的标准查询运算符,但可以使用 GroupJoin 方法执行此操作.”
var query =
people.GroupJoin(pets,
person => person,
pet => pet.Owner,
(person,petCollection) =>
new
{
OwnerName = person.Name,
Pets = petCollection.Select(pet => pet.Name)
});
这样的
再问: 看我补充的问题 现在是 var joinList = StuList.GroupJoin(ClassList, student => student.ClassID, myclass => myclass.ClassID, (student, myclasses) => new { StuName = student.Name,ClassName=myclasses.Select(o=>o.ClassName)}); foreach (var item in joinList) { Console.WriteLine(item.ClassName+ " " + item.StuName); } 这样不对 我想得到的是第三个学生jim 对应的班级是空 才对 谢谢
再答: 我这里是空啊
var query =
people.GroupJoin(pets,
person => person,
pet => pet.Owner,
(person,petCollection) =>
new
{
OwnerName = person.Name,
Pets = petCollection.Select(pet => pet.Name)
});
这样的
再问: 看我补充的问题 现在是 var joinList = StuList.GroupJoin(ClassList, student => student.ClassID, myclass => myclass.ClassID, (student, myclasses) => new { StuName = student.Name,ClassName=myclasses.Select(o=>o.ClassName)}); foreach (var item in joinList) { Console.WriteLine(item.ClassName+ " " + item.StuName); } 这样不对 我想得到的是第三个学生jim 对应的班级是空 才对 谢谢
再答: 我这里是空啊
如何将linq left join 的写法转换成 limq left join lambad的写法
left join的用法
怎样在LINQ实现 LEFT JOIN 或者RIGHT JOIN
left join和inner join的区别
left join 和 left outer join 的区别
linq用lambda表达式 left join 自连接怎么写
left join 和 right jion 怎么表示 LINQ
求将带条件的left join on的SQL转换成HQL
SQL中 inner join、 left join 、right join、 outer join之间的区别
inner join,left join,right join,full join 的区别?最好用例子说明!
数据库中的left join 和left outer join有什么本质的区别?
数据库的问题:解释inner join,left outer join ,cross join