如何使用 LINQ 对通过 .Include("table") 检索的表进行排序?
Posted
技术标签:
【中文标题】如何使用 LINQ 对通过 .Include("table") 检索的表进行排序?【英文标题】:How to order table retrieved via .Include("table") using LINQ? 【发布时间】:2015-06-25 12:25:23 【问题描述】:我有这个 LINQ 代码,它运行良好。我可以订购Posts
,但我还需要订购通过Include("Comments")
检索到的Comments
:orderby comment.DateAndTime descending
如何在 LINQ 代码中实现; (订购 cmets)?。
另外我想知道是否有办法直接在底层数据库表定义中实现这一点?评论表定义。
public IQueryable<Post> ListViewPosts_GetData()
FacebookDataEntities entities = new FacebookDataEntities();
var friends_A = from f in entities.Friends
where f.Friend_B == User.Identity.Name && f.AreFriends
select f.Friend_A;
var friends_B = from f in entities.Friends
where f.Friend_A == User.Identity.Name && f.AreFriends
select f.Friend_B;
return from p in entities.Posts.Include("Comments")
let userName = p.UserName
where userName == User.Identity.Name
|| friends_A.Concat(friends_B).Contains(userName)
orderby p.DateAndTime descending
select p;
【问题讨论】:
只是一个提示,你可以在你的数据库中创建一个视图并过滤视图 你能显示朋友、cmets和posts的表关系..包括列吗?也许这是一个错误的方法.. 【参考方案1】:我正在使用手机,所以这可能有错误,但您应该可以执行以下操作:
foreach(var post in p) post.Comments.OrderByDescending(c => c.DateAndTime);
【讨论】:
以上是关于如何使用 LINQ 对通过 .Include("table") 检索的表进行排序?的主要内容,如果未能解决你的问题,请参考以下文章
Linq to Entities - 使用 Include() 急切加载
如何通过 LINQ to Sql 结果上的数据对分组进行 lambda?