0
我有一個通用Repository類,首先使用代碼來執行數據操作。Code First Generic Repository與現有的數據庫表
public class GenericRepository<T> where T : class
{
public DbContext _context = new DbContext("name=con");
private DbSet<T> _dbset;
public DbSet<T> Dbset
{
set { _dbset = value; }
get
{
_dbset = _context.Set<T>();
return _dbset;
}
}
public IQueryable<T> GetAll()
{
return Dbset;
}
}
我有一個實體類教師,它映射到我的數據庫中現有的表「教師」,具有完全相同的字段。
public class Teacher
{
public Teacher()
{
//
// TODO: Add constructor logic here
//
}
public int TeacherID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
我有下面的代碼將數據從老師綁定到中繼器控制。
GenericRepository<Teacher> studentrepository = new GenericRepository<Teacher>();
rptSchoolData.DataSource = studentrepository.GetAll().ToList();
rptSchoolData.DataBind();
但我得到一個異常異常「的實體類型教師不在當前上下文模型的一部分」。當首先使用現有數據庫代碼時,我是否需要做額外的工作?
我不明白爲什麼創建一個繼承自DbContext的MyContext類,當我已經在存儲庫類中創建了一個DbContext實例並且有一個指向我的數據庫的斷開字符串。我的理解是,只有當您需要代碼才能創建數據庫時,您才創建一個上下文類。 – RAHUL
不,一個'DbContext'本身什麼都不知道,即使它有一個連接字符串。它如何知道在哪裏找到數據來實現「Teacher」?這不是在飛行中推斷它。假設它會。這可能需要很長時間才能成功,因爲數據庫和類模型之間存在精確的映射關係。這不是一個OR映射器的想法。 –