엔티티 프레임 워크를 사용하고 그러한 쿼리를 일반화하려고 시도 했으므로 각 엔티티가 속성이 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};
}
감사합니다 :)
Entity Framework 버전은 무엇입니까? 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? –