据我所知,编译查询不是现在支持实体框架代码优先(4.2)。 不使用编译查询的性能很高,所以我试图找到解决方案。实体框架CF(DbContext)和编译查询
我现在已经完成了以下工作: 创建一个从ObjectContext继承的新类 - 使用相同的EntityConnection将它与DbContext一起实例化。使用CreateObjectSet <>为实体创建ObjectSet,并将该conext用于已编译的查询。这是有效的(对于小型查询,性能提升10倍),但是由于需要为每个新实体(!DRY)创建ObjectSet属性,所以它非常麻烦。
有没有人知道解决这个问题的更优雅的方式?
我没有使用EDMX的DbContext,我使用从DbContext生成的EntityConnection来创建我自己的ObjectContext,它现在由T4生成。如果有的话,非常少的代码重复。但它感觉很不舒服,但比在DbContext上使用EDMX和ObjectContext更好。所以没有其他方式使用编译查询,而不是我目前的做法(当然,先使用代码)? – Jsfsn
谢谢拉迪斯拉夫。我不得不使用ObjectContext作为我的应用程序的一部分,尽管它有相当多的重构(但主要是重命名和修复名称空间),但我终于可以使用编译查询。我读过ef代码的编译查询,首先将在.net 4.5中。它是2011年6月CTP的一部分,但尚未正式发布。 +1 –