我有以下实体代码,它返回所有用户并"包含"他们的所有样本请求:
var userQuery = from u in _IntranetContext.UserSet.Include("SampleRequests")
orderby u.LastName ascending
select u;
Run Code Online (Sandbox Code Playgroud)
每个用户都有多个SampleRequests.每个SampleRequest都有一个ID#(只是一个整数:1,22,341等).上面的LINQ to实体抓住用户及其SampleRequests,如下所示:
用户1:33,22,341,12
用户2:24,3,881
正如您所看到的,SampleRequest ID#不是按升序排列的.我希望结果是有序的.
如何将orderby约束放在包含的SampleRequests ID#
请注意:SampleRequestId是SampleRequest的属性...不是User对象的属性
我现在可以想到你想要的两种选择.您可以将它们选择为新类,其中用户和关联的请求是属性:
var userQuery = from u in _IntranetContext.UserSet.Include("SampleRequests")
orderby u.LastName ascending
select new
{
User = u,
SampleRequests = u.SampleRequests.OrderByDescending(r => r.SampleRequestId)
};
Run Code Online (Sandbox Code Playgroud)
如果您想要返回此类型,这将导致问题,因为它是匿名的.
您也可以将其选择为新的用户对象,类似于:
var userQuery = from u in _IntranetContext.UserSet.Include("SampleRequests")
orderby u.LastName ascending
select new User
{
Property1 = u.Property1,
Property2 = u.Property2,
Property3 = u.Property3,
SampleRequests = u.SampleRequests.OrderByDescending(r => r.SampleRequestId).ToList()
};
Run Code Online (Sandbox Code Playgroud)
这将返回User对象的集合,但更新数据库中的对象可能会导致问题.
| 归档时间: |
|
| 查看次数: |
13579 次 |
| 最近记录: |