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 };
中部分我想抽离出来,如何抽离!
你给 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));
用Linq to entity 的飘过
什么意思啊? 我那问题知道吗?