我正在使用 EF 5.0 Code First API,我需要添加构建动态 OrderBy 表达式的能力(UI 有一个过滤器面板,用户可以在其中选择多个排序标准(例如,选择前 20 个客户,按 LastName ASC 排序,然后按出生日期 DESC)。
ObjectContext API 公开OrderBy("it.PropertyName")
了看起来很棒的方法,尽管它缺少编译时验证。但是,我在 DbContext API 中找不到任何类似物。
谷歌搜索问题我发现了这样的建议:
((IObjectContextAdapter)myContextInstance).ObjectContext.CreateQuery<MyEntity>("<ESQL Query>")
但是,我根本不想放弃 LINQ 查询。有没有办法得到这样的东西(混合 ESQL 和 LINQ,因为它可以通过使用 ObjectContext):
var customers = myDbContext.Customers.OrderBy("it.LastName desc").Where(c => c.Age < 18)