2013-01-03 47 views
0

我已經使用dbcontext爲綁定的實體設置了dgv。工作正常。行顯示在dgv中,我可以修改單元格並使用SaveChanges進行更新。但是,如果我嘗試在dgv中添加新行,它不會被保存。如果dgv綁定到實體,那麼不應該自動添加新行,還是必須執行某些操作才能添加它?什麼?請提供示例代碼。我將嘗試下一步從dgv中刪除。我會有類似的問題嗎?我怎樣才能讓它工作?我搜索了互聯網的例子,但他們停止綁定的enitities,不包括添加或刪除。任何幫助,將不勝感激。EF 5.0 WinForms在綁定的DataGridView中添加新行

回答

0

我發現一對夫婦的聯繫有類似的問題,其中之一就是:

DataGridView AllowUserToAddRow property doesn't work

看來,使用.ToList攪亂結合。在我的情況下,我使用MyContext.MyTable.Local.ToList作爲源。當我刪除.ToList時,一切正常。也許有人可以更詳細地告訴我們爲什麼這個作品?

感謝那些首先發現它的人。

0

解決方案的.NET Framework 4

我試圖卸下.ToList(),但是我根本沒有結果。

所以我的解決方法是:

對於刪除:
在datagridview的UserDeletingRow事件

// Get deleted entity: 
myEntityType currentEntity = (myEntityType)BindingSource[e.Row.Index]; 

// Delete directly from context 
context.myEntityType.Remove(currentEntity); 

對於插入:
保存按鈕我遍歷的BindingSource並檢查是否有enitity有一個ID == 0,然後用context.MyEntityType.Add(currentEntity);

相關問題