我一直在嘗試使用實體框架的代碼優先。我寫了下面的代碼行代碼優先使用DbContext
DbContext _context = new DbContext(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
但是在執行過程中,連接保持關閉。這段代碼有什麼問題?
我創建使用的DbContext下面
public class GenericRepository<T> where T:class
{
public DbContext _context = new DbContext(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
private DbSet<T> _dbset;
public DbSet<T> Dbset
{
set { _dbset = _context.Set<T>(); }
get { return _dbset; }
}
public IQueryable<T> GetAll()
{
return Dbset;
}
}
所示的通用庫類,然後我呼籲網頁加載事件,其中教師是映射到數據庫中的表
一個實體類該類protected void Page_Load(object sender, EventArgs e)
{
GenericRepository<Teacher> studentrepository = new GenericRepository<Teacher>();
rptSchoolData.DataSource = studentrepository.GetAll().ToList();
rptSchoolData.DataBind();
}
但連接保持關閉狀態,並且上下文對象的ServerVersion中還有一個InvalidOperation異常。
我錯過了什麼?
您需要創建自己的上下文類,它從DbContext繼承並定義實體集合。 – tvanfosson
我的數據庫已經存在與表。這是我在我已經傳入DbContext對象的連接字符串中指定的內容。我仍然需要一個繼承它的類嗎? – RAHUL
@RAHUL:是的,你需要。 – Slauma