Saya masuk ke Kerangka Entitas, tapi saya tidak yakin apakah saya kehilangan titik kritis dalam pendekatan kode-pertama.
Saya menggunakan pola repositori generik berdasarkan kode dari https://genericunitofworkandrepositories.codeplex.com/ dan telah membuat entitas saya.
Tetapi ketika saya mencoba mengakses atau memodifikasi entitas saya mengalami hal-hal berikut:
System.InvalidOperationException: Jenis entitas Estate bukan bagian dari model untuk konteks saat ini.
Itu terjadi ketika saya mencoba mengaksesnya dari repositori saya:
public virtual void Insert(TEntity entity)
{
((IObjectState)entity).ObjectState = ObjectState.Added;
_dbSet.Attach(entity); // <-- The error occurs here
_context.SyncObjectState(entity);
}
Basis data (./SQLEXPRESS) dibuat dengan baik, tetapi entitas (tabel) tidak dibuat saat startup.
Saya bertanya-tanya apakah saya perlu mengatur pemetaan entitas secara eksplisit? Apakah EF tidak dapat melakukan ini sendiri?
Entitas saya adalah:
public class Estate : EntityBase
{
public int EstateId { get; set; }
public string Name { get; set; }
}
Konteks saya adalah seperti itu:
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>();
}
}
Apakah ada alasan khusus mengapa kesalahan ini terjadi? Saya telah mencoba mengaktifkan migrasi dan mengaktifkan migrasi otomatis tanpa bantuan apa pun.