OrderByDescending与另一个表的日期

时间:2015-03-29 09:58:16

标签: c# linq entity-framework linq-to-entities

希望这个问题不要混淆。基本上我正在寻找关于如何使用关系表中的日期 OrderByDecending 的指针。我已经构建了一个看起来可能有效的基本方法,但是我遇到了错误:

  

DbSortClause表达式必须具有可比较的类型。   参数名称:key

我理解这是说什么,但我不完全确定如何使用Linq方法语法进行修复。

public BusinessEntities.Application GetLastUpdatedAppliction(int userID)
{
    return context.tbl_User_To_Application
                            .Where(x => x.UserID == userID)
                            .OrderByDescending
                                        (o => o.tbl_Application.tbl_ApplicationChanges
                                            .Where(oo => oo.ApplicationID == o.ApplicationID)
                                            .Select(s => s.ChangeDate))
                            .ThenByDescending(t => t.DateAdded)
                            .Select(y => new BusinessEntities.Application
                            {
                                ApplicationID = y.tbl_Application.ApplicationID,
                                ApplicationName = y.tbl_Application.ApplicationName
                            }).FirstOrDefault();
}

基本上我有一个将用户绑定到特定应用程序(网站)的交叉引用表然后在内部我需要嵌套到两个表中以使用" ChangesDate"来获取对应用程序的最新更改。理想情况下,这将返回上次更新的应用程序。然后显然填充了我的DTO。

我仍然试图掌握Linq方法的语法,所以任何帮助都将不胜感激!

此致

Tez Wingfield

1 个答案:

答案 0 :(得分:0)

如果您想按上次申请更改日期订购:

(...)
.OrderByDescending(o => 
   o.tbl_Application.tbl_ApplicationChanges
      .Where(ac => ac.ApplicationID == o.ApplicationID)
      .OrderByDescending(ac => ac.ChangeDate)
      .First()
      .Select(ac => ac.ChangeDate)
)
(...)