2013-01-03 28 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);

相关问题