实体结构大概这样:
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,求一种高效的查询方法。
最好使用拉姆达表达式的写法。
分组取前十.百度一下吧.
我连这个sql都不会写.更不用用linq了.
list.groupby(a=>a.type).select(a=>new{a.key,a.take(10)})
不知道行不行.
既是EF,我想你的目的应该是在页面上可以得到一个分类的集合,集合中又有一个最多包含十条文章的集合。一次查询貌似难以实现,可以分布进行。
既然是linq EF, 它生成的实体怎么可能是你这样的类结构,要不你就是做了 code first 吧? 要不然写什么代码都没有意义。你就没有把必须的东西贴出来。
查10次那就是10次连接数据库,效率可想而知。