Entity Framework v2.1.3: Order property (list of objects) of object
标题措辞不好,我知道。
我有一个对象
订购警报
我尝试过(在带有
1 2 3 | user = users .Include(user => user.Alerts.OrderBy(alert => alert.LastActivatedDt) .FirstOrDefault(user => user.Id === id) |
但我收到以下错误:
System.InvalidOperationException: The Include property lambda expression 'user => {from Alert alert in user.Alerts orderby [alert].LastActivatedDt asc select [alert]}' is invalid. The expression should represent a property access: 't => t.MyProperty'. To target navigations declared on derived types, specify an explicitly typed lambda parameter of the target type, E.g. '(Derived d) => d.MyProperty'.
您不能在包含中执行此操作,实际上您根本不需要包含用于此特定目的。就这样吧:
1 | users.OrderBy(o => o.Alerts.Min(a => a.LastActivatedDt)).FirstOrDefault(); |
你也可以使用
编辑
出于某种原因,我完全不考虑通过特定 id 部分获取用户。我想你实际上想要实现的是拉出一个特定的用户,同时让他们的警报集合得到适当的排序。这实际上是不可能的。您需要做的事情类似于:
1 2 | var user = users.Include(x => x.Alerts).SingleOrDefault(x => x.Id == id); var alerts = user.Alerts.OrderBy(o => o.LastActivatedDt); |
您不能就地订购用户的警报。您必须使用排序结果设置一些其他变量。