sql、linq和lambda查询语句比较inner join和group by组合使用及匿名类型的处理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了sql、linq和lambda查询语句比较inner join和group by组合使用及匿名类型的处理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2229字,纯文字阅读大概需要4分钟。
内容图文
![sql、linq和lambda查询语句比较inner join和group by组合使用及匿名类型的处理](/upload/InfoBanner/zyjiaocheng/471/7ef5725e85c142c196b2842ad39399af.jpg)
(select b.PhotoAlbumID,b.PhotoUrl,a.ID,a.PhotoAlbumName,a.Describe
from PhotoAlbum as a
inner join Photos as b on a.ID=b.PhotoAlbumID) as c
group by PhotoAlbumName,Describe,PhotoAlbumID
linq:
var photolist2 = (from a in db.PhotoAlbum
join b in db.Photos on a.ID equals b.PhotoAlbumID
group new { a, b } by new { a.PhotoAlbumName, a.Describe, a.PhotoCounts, b.PhotoAlbumID } into c
select new PhotoAlbumListModel
{
ID = c.Key.PhotoAlbumID,
PhotoAlbumName = c.Key.PhotoAlbumName,
Describe = c.Key.Describe,
PhotoCounts = c.Key.PhotoCounts,
FirstPhotoUrL = c.Max(d => d.b.PhotoUrl), //这个可以不看,看你自己的需求
}).ToList();
注意:(PhotoAlbumListModel 这个是我新建的实体类,因为原有的查询结果集是匿名类型,到页面识别不了,需要转换,当然还可以使用foreach的方法转换)
lambda:
var photolist3 = db.PhotoAlbum.Join(db.Photos, a => a.ID, b => b.PhotoAlbumID, (a, b) => new
{
a.ID,
a.PhotoAlbumName,
a.Describe,
a.PhotoCounts,
b.PhotoUrl,
b.PhotoAlbumID,
}).GroupBy(c => new { c.PhotoAlbumID, c.PhotoAlbumName, c.Describe, c.PhotoCounts }).Select(d => new PhotoAlbumListModel
{
ID = d.Key.PhotoAlbumID,
PhotoAlbumID = d.Key.PhotoAlbumID,
PhotoAlbumName = d.Key.PhotoAlbumName,
Describe = d.Key.Describe,
PhotoCounts = d.Key.PhotoCounts,
FirstPhotoUrL = d.Max(e => e.PhotoUrl), //这个可以不看,看你自己的需求
}).ToList();
注意:(PhotoAlbumListModel 这个是我新建的实体类,因为原有的查询结果集是匿名类型,到页面识别不了,需要转换,当然还可以使用foreach的方法转换)
当然方法不止一种,有其他更好更方面的也可以留言给我,不明白的也可以互相探讨,我每天都会查看一次。写的不好的,需要改进的,都可以提出意见。谢谢
sql、linq和lambda查询语句比较inner join和group by组合使用及匿名类型的处理
标签:
本文系统来源:http://www.cnblogs.com/tec-1988/p/5913257.html
内容总结
以上是互联网集市为您收集整理的sql、linq和lambda查询语句比较inner join和group by组合使用及匿名类型的处理全部内容,希望文章能够帮你解决sql、linq和lambda查询语句比较inner join和group by组合使用及匿名类型的处理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。