我有一个非常简单的带有实体框架的 Windows 窗体项目。
只需我从“表单”中的“数据源”选项卡中拖动表格,它就会为我生成一个“DataGridView”和一个“BindingSource”。
数据绑定成功,当我运行项目时,我可以看到“DataGridView”正确填充了数据,并且可以从“DataGridView”更新任何单元格值。
问题是我无法在“DataGridView”中插入任何行。
这是我写的一些代码,希望对解决问题有用:
Teachers_DBEntities context = new Teachers_DBEntities();
private void SaveItem_Click(object sender, EventArgs e)
{
context.SaveChanges();
MessageBox.Show("saved successfully");
}
private void Form1_Load(object sender, EventArgs e)
{
teachers_tableBindingSource.DataSource = context.teachers_table.ToList();
}
更新评论
我测试了我的“BindingSource”,发现它成功理解了是否在“DataGridVeiw”中插入了新记录,但是当我调用时,更改不会应用于数据库context.savechanges();
context.savechanges()
当我更新单元格时工作正常,但当我尝试在“DataGridView”中插入新记录时它不起作用。
在我的 edmx 文件中,我正确映射了所有列,主键StoreGeneretedPattern
属性设置为Identity
,其Entity Key
属性设置为true
. 它auto-increment
在我的 SQL Server 数据库文件中的属性设置为true
.
任何帮助表示赞赏。