我看到這裏一些帖子看起來像我這樣的插入實體,但是我找不到答案,我的具體問題。異常,同時試圖使用EF4.3.1
的事情是,我試圖插入使用導航實體到數據庫。支柱。然而 我經常收到:The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.
using (EntitiesDatabase context = new EntitiesDatabase())
{
if (UserHandler.Instance.User is Admin)
{
((Admin)UserHandler.Instance.User).ProjectManagers.Add(
new ProjectManager(firstNameTextBox.Text, lastNameTextBox.Text, usernameTextBox.Text, passwordTextBox.Text));
}
else if (UserHandler.Instance.User is ProjectManager)
{
((ProjectManager)UserHandler.Instance.User).Developers.Add(
new Developer(firstNameTextBox.Text, lastNameTextBox.Text, usernameTextBox.Text, passwordTextBox.Text));
}
context.SaveChanges();
}
錯誤異常的代碼(u.ProjectManagers.Add(new ProjectManager(...))
爲清晰的5-6線拋出: UserHandler
是保存參考一singelton登錄用戶。 用戶有一個導航屬性
public virtual ICollection<ProjectManager> ProjectManagers { get; set; }
實際應該插入新項目經理的DB I上下文做SaveChanges()
後。
我已經做了一些簡單的測試,在較小的項目(如在PluralSight教程的那些)和它的工作...由於某種原因,這些相同的路線不工作。 在我試圖將其插入到導航之前,我正在創建新的項目經理。支柱。因爲我從來沒有進入保存更改線...
從我看到的其他答案,我猜想using
聲明由於某種原因處理的事情,才達到了最後括號。我不明白爲什麼...... 有人能以正確的方式指出我嗎?
BTW,這不是功課的傢伙,這是我的一個項目中,我努力學習C#,EF和其他技術。
上線,你得到錯誤?忘記指定 – Reniuz 2012-04-24 08:38:15
。即時通訊得到它在我嘗試添加到數據庫的東西... u.ProjectManagers.Add(新的ProjectManager(...))第6行的代碼 – 2012-04-24 08:44:58
我認爲你需要使用當前的上下文,而不是某種類型的用戶處理程序實例 – Reniuz 2012-04-24 08:51:11