问候,
考虑到 Northwind 示例表 Customers、Orders 和 OrderDetails,我希望预先加载与上述表对应的相关实体,但在获取实体之前我需要对数据库中的子实体进行排序。
基本情况:
var someQueryable = from customer in northwindContext.Customers.Include("Orders.OrderDetails")
select customer;
但我还需要针对这些表上的一些随机列在数据库端(在将这些实体提取到内存之前)对 Orders 和 OrderDetails 进行排序。是否有可能没有一些投影,就像在 T-SQL 中一样?解决方案是使用 e-SQL 还是 LINQ to Entities 并不重要。我搜索了网络,但我对找到的答案并不满意,因为它们主要涉及将数据投影到某个匿名类型,然后重新查询该匿名类型以按照您喜欢的顺序获取子实体。同样使用 CreateSourceQuery() 对我来说似乎不是一个选项,因为我需要获取数据库端的数据,通过急切加载但只需订购子实体。那就是我想在执行任何查询之前执行“ORDER BY”,然后按我想要的顺序获取实体。提前感谢您的任何指导。作为个人说明,请原谅直接语言,因为我对微软以如此不成熟的形式发布 EF 感到有点生气,即使与 Linq to SQL 相比(他们似乎正在慢慢摆脱)。我希望这个 EF 东西会变得更好,并且在 .NET FX 4.0 的发布版本中没有重大错误。