Я потрапляю в Entity Framework, але я не впевнений, якщо мені не вистачає критичної точки в підході до коду.
Я використовую загальний шаблон репозиторію на основі коду з https://genericunitofworkandrepositories.codeplex.com/ і створив мої сутності.
Але коли я намагаюся отримати доступ або змінити сутність, я стикаюся з наступним:
System.InvalidOperationException: Тип об'єкта Не є частиною моделі для поточного контексту.
Це трапляється, коли я намагаюся отримати доступ до нього зі свого сховища:
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>();
}
}
Чи є якась конкретна причина, чому ця помилка виникає? Я намагався ввімкнути міграцію та ввімкнути автоматичні міграції і без допомоги.