Entity Framework에 들어가고 있지만 코드 우선 접근 방식에서 중요한 점이 누락되었는지 확실하지 않습니다.
https://genericunitofworkandrepositories.codeplex.com/ 의 코드를 기반으로 일반 리포지토리 패턴을 사용 하고 있으며 엔터티를 만들었습니다.
그러나 엔터티에 액세스하거나 수정하려고하면 다음과 같은 문제가 발생합니다.
System.InvalidOperationException : 항목 유형 Estate가 현재 컨텍스트에 대한 모델의 일부가 아닙니다.
내 저장소에서 액세스하려고 할 때 발생합니다.
public virtual void Insert(TEntity entity)
{
((IObjectState)entity).ObjectState = ObjectState.Added;
_dbSet.Attach(entity); // <-- The error occurs here
_context.SyncObjectState(entity);
}
데이터베이스 (./SQLEXPRESS)는 정상적으로 작성되지만 엔티티 (테이블)는 시작시 작성되지 않습니다.
엔티티의 맵핑을 명시 적으로 설정해야하는지 궁금합니다. EF는 독자적으로 이것을 할 수 없습니까?
나의 실체는 :
public class Estate : EntityBase
{
public int EstateId { get; set; }
public string Name { get; set; }
}
내 맥락은 다음과 같습니다.
public partial class DimensionWebDbContext : DbContextBase // DbContextBase inherits DbContext
{
public DimensionWebDbContext() :
base("DimensionWebContext")
{
Database.SetInitializer<DimensionWebDbContext>(new CreateDatabaseIfNotExists<DimensionWebDbContext>());
Configuration.ProxyCreationEnabled = false;
}
public new IDbSet<T> Set<T>() where T : class
{
return base.Set<T>();
}
}
이 오류가 발생하는 특별한 이유가 있습니까? 도움없이 마이그레이션을 활성화하고 자동 마이그레이션을 활성화했습니다.