1

我正在使用 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)
4

1 回答 1

0

像这样的东西?我不确定混合 ESQL 和 LINQ,但您的最后一个查询可以完全从 LINQ 完成。

var customers = myDbContext.Customers.OrderByDescending(a => a.LastName).ThenBy(c => c.BirthDate).Where(b => b.Age < 18);

于 2013-01-25T23:15:35.283 回答