实体框架使编译的查询成为通用查询

本文关键字:查询 框架 编译 实体 | 更新日期: 2023-09-27 18:36:08

我使用实体框架,我试图使这样的查询泛型,因此它可以用于任何实体类型(假设每个实体都有属性int Id)。

我尝试了这样的事情,但没有集合ctx。TEntity或类似的东西:

public class Queries<TEntity> where TEntity : AbstractEntity
{
  public Func<AdventureWorksEntities, int, TEntity> getQuery() {
   return
    CompiledQuery.Compile<AdventureWorksEntities, int, Entity>(
    (ctx, num) => ctx.TEntity.First(x => x.Id>num));
    }
}

抽象性:

public abstract class AbstractEntity {
[Key]
public int Id {get; set};
}

感谢您的想法:)

实体框架使编译的查询成为通用查询

我尝试了使用 DbContext 编译的查询,但没有成功(它不受支持,解决方法也不适合我)。你有没有欺骗这个链接:http://blogs.msdn.com/b/efdesign/archive/2011/06/30/auto-compiled-linq-queries-entity-framework-june-2011-ctp.aspx?

你可以看到这篇文章:http://social.msdn.microsoft.com/Forums/en-US/0c07e1d6-7db6-4348-b106-e576d3153b70/ef-40-compiled-queries-performance?forum=adonetefx。我不认为使用编译的 Queires 与现代版本的 EF(5 和 6)有很大的不同。

在第一个查询中,连接已设置,这可能需要一些时间。