ฉันกำลังเข้าสู่ 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>();
}
}
มีเหตุผลเฉพาะใด ๆ ที่ทำให้เกิดข้อผิดพลาดนี้หรือไม่? ฉันได้ลองเปิดใช้งานการย้ายข้อมูลและเปิดใช้งานการย้ายข้อมูลอัตโนมัติโดยไม่มีความช่วยเหลือใด ๆ