首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Linq EF 数据查询,该如何处理

2012-03-14 
LinqEF 数据查询表 News字段 IDType(类别)Display10001510011510021510031510042410052510062510072410083

Linq EF 数据查询
表 News 
字段 ID Type(类别) Display
1000 1 5
1001 1 5
1002 1 5
1003 1 5
1004 2 4
1005 2 5
1006 2 5
1007 2 4
1008 3 5
1009 3 4
想要获取数据
1001 1 5
1002 1 5
1003 1 5
1005 2 5
1006 2 5
获取指定类别(1和2)最新display=5的三条数据
Model.Context.News.Where(it=>it.Display==5) 
小弟不才 请问后面怎么写?

[解决办法]


select c in Model.Context.News where c.Display==5 and (c.Type==1 or c.Type==2)
 .ToList().AsQueryable().ToPagedList(0, 3);
[解决办法]
两个判断条件可以放一起,也可以象我这样分开。

C# code
News[] table = new News[]{    new News{_id = 1000,_type = 1,  _display = 5},    new News{_id = 1001,_type = 1,  _display = 5},    new News{_id = 1002,_type = 1,  _display = 5},    new News{_id = 1003,_type = 1,  _display = 5},    new News{_id = 1004,_type = 2,  _display = 4},    new News{_id = 1005,_type = 2,  _display = 5},    new News{_id = 1006,_type = 2,  _display = 5},    new News{_id = 1007,_type = 2,  _display = 4},    new News{_id = 1008,_type = 3,  _display = 5},    new News{_id = 1009,_type = 3,  _display = 4}};News[] result = table.Where(o => o._display == 5)    .Where(o => o._type == 1 || o._type == 2)    .ToArray<News>();foreach (News item in result)    Console.WriteLine("{0}-{1}-{2}", item._id, item._type, item._display);
[解决办法]
C# code
//可以 分组var query= from n in Model.Context.News           group n by n.Type into g           where g.key==1 ||g.key==2           select g.Where(w=>w.Display==5).Take(3);var query1 = Model.Context.News.GroupBy(g => g.Type )                               .Where(g => g.Key == 1 || g.Key == 2)                               .Select(s => s.Where(w => w.Display==5).Take(3));
[解决办法]
探讨

2楼 Abbey
关键是每个类别取3条 怎么做到?

[解决办法]
探讨

两个判断条件可以放一起,也可以象我这样分开。
C# code
News[] table = new News[]
{
new News{_id = 1000,_type = 1, _display = 5},
new News{_id = 1001,_type = 1, _display = 5},
new News{_id = 1002,_type = 1, ……

热点排行