首页 新闻 赞助 找找看

LINQ TO SQL 抽离公共部分代码

0
悬赏园豆:5 [已解决问题] 解决于 2012-09-14 14:21
 1         private IEnumerable<FriendLinkEntity> GetFriendLinkList(int top)
 2         {
 3             IEnumerable<FriendLinkEntity> list = null;
 4             var query = from f in db.FriendLinkEntitys
 5                         where f.IsDisplay == true && f.IsDelete == false && f.EffectiveDate > DateTime.Now
 6                         orderby f.AddDate,f.Sort ascending
 7                         select new
 8                         {
 9                             f.LinkName,
10                             f.LinkUrl
11                         };
12             list = query.Take(top).ToList().ConvertAll<FriendLinkEntity>(item => new FriendLinkEntity() { LinkName = item.LinkName, LinkUrl = item.LinkUrl });
13             return list;
14         }

如何抽离出返回如下代码的方法:

var query = from f in db.FriendLinkEntitys
                         where f.IsDisplay == true && f.IsDelete == false && f.EffectiveDate > DateTime.Now
                         orderby f.AddDate,f.Sort ascending
                         select new
                         {
                             f.LinkName,
                             f.LinkUrl
                         };

中部分我想抽离出来,如何抽离!

xu_happy_you的主页 xu_happy_you | 菜鸟二级 | 园豆:222
提问于:2012-09-06 17:47
< >
分享
最佳答案
0

你给 FriendLinkEntitys 类型增加一个扩展方法,签名为:SelectNew();,然后把你那一长串代码放进去。

然后你就可以这样调用代码:

var query = db.FriendLinkEntitys.SelectNew();

 

或者你可以用 DynamicQueryable 类试试,这是微软 DynamicLinq 的例子,它让你可以这样写LINQ:

var result = db.FriendLinkEntitys.Where("IsDisplay == true AND IsDelete == false").OrderBy("AddDate desc").Select(new(LinkName,Linkurl));

收获园豆:5
Launcher | 高人七级 |园豆:45045 | 2012-09-06 18:12
其他回答(1)
0

用Linq to entity 的飘过

jerry-Tom | 园豆:4077 (老鸟四级) | 2012-09-07 10:16

什么意思啊? 我那问题知道吗?

支持(0) 反对(0) xu_happy_you | 园豆:222 (菜鸟二级) | 2012-09-07 12:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册