LINQ to SQL에서 DataContext.GetTable<T>
을 사용하여 동적으로 리포지토리를 만들 수 있습니다. 특정 DbContext
에있는 속성을 선언하는 것 외에 Entity Framework 4에서 이와 비슷한 방법이 있습니까? 예를 들어 :DbSet <T>을 Entity Framework에서 동적으로 만드시겠습니까?
var mySet = MyDbContext.GetTable<MySet>();
LINQ to SQL에서 DataContext.GetTable<T>
을 사용하여 동적으로 리포지토리를 만들 수 있습니다. 특정 DbContext
에있는 속성을 선언하는 것 외에 Entity Framework 4에서 이와 비슷한 방법이 있습니까? 예를 들어 :DbSet <T>을 Entity Framework에서 동적으로 만드시겠습니까?
var mySet = MyDbContext.GetTable<MySet>();
DbContext
이에 대한 방법이 있습니다 : 내가 좋아하는 것
public MyDbContext: DbContext
{
public DbSet<MySet> MySets {get; set;}
}
내가 LINQ 때와 수에로 SQL로 동적으로
MySets
에 대한 참조를 얻을/I 만들 수있는 방법을 알고
을
var set = context.Set<MyEntity>();
사용 :
DbSet<MyEntity> set = context.Set<MyEntity>();
또는, 당신은 일반적인 방법을 사용할 수없는 경우 :
DbSet set = context.Set(
typeof(MyEntity)
);
두 번째 로딩과 POCO 중복에 대해 걱정하지 마십시오을. 세트는, Context에 의해 내부적으로 캐쉬됩니다.
프로젝트에서 비슷한 것을 사용했지만 작은 문제가 발생했습니다. DbSet은 동적으로 생성되고 메모리 내 그래프는 잘 작동합니다. 그러나, 데이터가 데이터베이스에 저장 될 때가있다. context.SaveChanges() 다음 예외가 throw됩니다 : 잘못된 개체 이름 'dbo.CustomModel'. – ppoliani
존재하지 않는 db 개체에 액세스하려고하기 때문에 매핑에 문제가있는 것 같습니다. –