希望这个问题不要混淆。基本上我正在寻找关于如何使用关系表中的日期 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
答案 0 :(得分:0)
如果您想按上次申请更改日期订购:
(...)
.OrderByDescending(o =>
o.tbl_Application.tbl_ApplicationChanges
.Where(ac => ac.ApplicationID == o.ApplicationID)
.OrderByDescending(ac => ac.ChangeDate)
.First()
.Select(ac => ac.ChangeDate)
)
(...)