【发布时间】:2017-08-03 22:59:41
【问题描述】:
我有一个用于编辑新用户和将新用户插入数据库的表单。我使用 Entity Framework 6。我的所有控件(文本框和一个组合框)都绑定到特定的绑定源,所以当我更新实体时:
context.user.add(user);
context.Save();
我的用户界面发生了变化。反之亦然。现在,更新工作正常,但我在插入新用户时遇到了一些问题。目前,数据网格视图设置了数据源,并且我通过直接单击网格视图禁用了添加行(因为我希望该部分通过表单):
好的,到目前为止一切顺利。现在,当我想添加一个新用户时,我会这样做:
myDataSource = context.user.Local.ToBindingList();
myDataSource.AllowNew = true;
及以后:
myDataSource.AddNew();
调用AddNew() 后,空白行被添加到网格视图中,当我在表单中插入值时,所有内容都会自动显示在网格视图中。
问题是,我无法真正将这些数据保存到数据库中。如果我这样做:
context.Save();
什么都没有发生。我猜是因为 AddNew() 方法新创建的实体没有附加到当前上下文。但我没有引用它来附上它。
我猜AddNew() 创建了一个新实体,对吧?并将其添加到数据源。如果我错了,请纠正我。
那么在这种情况下如何保存更改?
【问题讨论】:
-
我看到你使用 _context 但你调用 save on context(没有 _)
-
@SkylerLauren 不,这只是一个例子。我到处使用
context。不过我会解决的,谢谢!
标签: c# visual-studio datagridview entity-framework-6 bindingsource