【问题标题】:How can I use EF in windows forms to insert new data?如何在 Windows 窗体中使用 EF 插入新数据?
【发布时间】:2010-12-27 21:05:57
【问题描述】:


也许这是一个简单的问题,但这是我第一次使用 EF + win 应用程序所以...... 我正在使用 EF 构建 win 应用程序,方法是将 edmx 添加为数据源,然后拖放表格以获取导航器和绑定源。当我按下导航器中的添加按钮时,它允许我输入新数据,但是当我保存上下文时除了自动递增字段(ID 字段)之外,我得到所有字段的 NULL 数据....
我应该怎么做才能保存许多条目...?
我是否必须遍历绑定源中的所有实体并将它们添加到上下文中??
提前谢谢

更新:
我忘了说,当我使用数据网格视图时,它会正确添加项目,但使用“详细信息”却没有..

【问题讨论】:

    标签: c# frameworks entity


    【解决方案1】:

    我想通了..
    当我将实体从数据源拖放为“详细信息”控件时出现问题..
    问题是上下文和绑定源中的新项目(通过单击导航器中的“添加”按钮创建)之间没有连接..所以我们必须通过获取新实体并添加它来手动建立这个连接每次我们添加新项目时都会添加到上下文中。
    最后,我们应该在绑定源中结束编辑模式,并在保存上下文中的更改后接受所有更改(接受更改将允许我们在保存后更新新项目)..这是代码:

        private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
        {
            MyEntity newEnt = new MyEntity();
            newEnt = (MyEntity)MyEntityBindingSource.Current;
            ctx.AddToAuthors(newEnt);
        }
    
        private void MyEntityBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            try
            {
                MyEntityBindingSource.EndEdit();
                ctx.SaveChanges();
                ctx.AcceptAllChanges();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }  
    

    我希望这会有所帮助..

    【讨论】:

      猜你喜欢
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 2020-10-31
      • 2021-12-20
      • 1970-01-01
      相关资源
      最近更新 更多