首页新闻找找看学习计划

EF Linq怎么一次查询每个分类下面前十篇文章?

0
悬赏园豆:10 [已解决问题] 解决于 2017-03-04 14:33

实体结构大概这样:

public class tag{

  id {get; set;}

  name {get;set;}

  List<news> news{get;set;}

}

public class news{

  id{get;set;}

  title{get;set;}

  List<tag> tags{get;set;}

}

比如我页面上有10个分类版块,每个版块显示前十篇文章,现在我使用Concat来实现将几个分类的sql union起来一次查询出来,这种做法肯定有点low,求一种高效的查询方法。

最好使用拉姆达表达式的写法。

虚若影的主页 虚若影 | 初学一级 | 园豆:193
提问于:2017-02-21 09:33
< >
分享
最佳答案
0

分组取前十.百度一下吧.

我连这个sql都不会写.更不用用linq了.

list.groupby(a=>a.type).select(a=>new{a.key,a.take(10)})

不知道行不行.

收获园豆:10
吴瑞祥 | 高人七级 |园豆:28729 | 2017-02-21 10:06
其他回答(2)
0

既是EF,我想你的目的应该是在页面上可以得到一个分类的集合,集合中又有一个最多包含十条文章的集合。一次查询貌似难以实现,可以分布进行。

龙行天涯 | 园豆:1832 (小虾三级) | 2017-02-21 09:53
0

既然是linq EF, 它生成的实体怎么可能是你这样的类结构,要不你就是做了 code first 吧? 要不然写什么代码都没有意义。你就没有把必须的东西贴出来。

查10次那就是10次连接数据库,效率可想而知。

沧海一杰 | 园豆:48 (初学一级) | 2017-02-21 16:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册