如何在Windows窗体中使用EF来插入新数据?

时间:2010-12-27 21:05:58

标签: c# frameworks entity

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

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

1 个答案:

答案 0 :(得分: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);
        }
    }  

我希望这有用..