我实际上正在开发一个使用非常大的 linq 到实体查询(大约 250 行)的项目,该项目与许多不同的实体一起工作。
这个查询取决于几个参数(最多 3 个或 4 个),所以我想“存储”我的查询的表达式树,并只用我这样的几个参数来修改这个。
IQueryable<Foo> myQuery =
GetBaseQuery()
.Where(a => a.Param1 == "foo")
.Where(a => a.Param2 == "bar");
除了使用编译查询,有没有办法做到这一点?
这个问题有一些条件
- 我使用 DbContext 并可能更改为 ObjectContext,这似乎是使用编译查询的先决条件。
- 我使用 Visual Studio 2010,所以...我仅限于 .NET 4 和实体框架 4.3(没有 .NET 4.5、EF5 和自动编译的查询毫无希望)
那么,有没有办法
- 存储一个表达式树,它只用作“基础”并且不会花费太多时间来生成?
- 还是在 Visual Studio 2010 中使用 .NET 4.5?
- 或者使用带有 DbContext 的编译查询
真的提前谢谢!