我使用实体框架和Im试图使这样一个查询泛型,因此它可以用于任何实体类型(假设每个实体具有属性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));
}
}
AbstractEnitity:
public abstract class AbstractEntity {
[Key]
public int Id {get; set};
}
感谢您的想法:)
实体框架的版本是什么?你使用ObjectContext还是DbSet? –
我使用EF6代码优先 - 我可以访问ObjectContext和DbContext。 DbSet我在我的DbContext类中定义了属性。 –
我试着用DbContext编译查询,但没有成功(它不被支持,解决方法也不适合我)。你有没有想过这个链接:http://blogs.msdn.com/b/efdesign/archive/2011/06/30/auto-compiled-linq-queries-entity-framework-june-2011-ctp.aspx? –