[4.0][Entity Framework][DataGridView]add时DataGridView无反应,但是Delete的时候正常刷新
各位,在下遇到一个问题在winforms下面用"正规"方法(也就是先建立数据库->建立EF模型->绑定到控件的顺序)
环境是:
sqlcompact 3.5 sp1
打了sp1的vs2010估计ef也是3.5
一张order表
private System.Windows.Forms.BindingSource orderBindingSource;
this.dataGridView1.DataSource = this.orderBindingSource; //建立bindingSource和gridview的关系
TestDbCompactEntities db = new TestDbCompactEntities(); //这是一个EF实体对象上下文的实例
private void Form1_Load(object sender, EventArgs e)
{
orderBindingSource.DataSource = db; //绑定到上下文
orderBindingSource.DataMember = "Orders";
}
按这个顺序搞好后做两个按钮
//添加一个order对象到表
private void button2_Click(object sender, EventArgs e)
{
Order od = new Order();
od.OrderID = Guid.NewGuid();
od.OrderName = "test";
db.Orders.AddObject(od);
db.SaveChanges();
db.AcceptAllChanges();
}
//删除order对象
private void button3_Click(object sender, EventArgs e)
{
Order od = db.Orders.First();
db.Orders.DeleteObject(od);
db.SaveChanges();
db.AcceptAllChanges();
}
结果发现添加的时候datagridview不更新
但是数据能进去数据源
删除的时候一切正常
另外,添加的时候如果是在grid上面操作则正常
//------------------------------------
我自己的看法是:
直接在ObjectContex.ObjectSet上面AddObject()的动作
是不是ObjectSet不发通知给CurrencyManager,所以CM不更新表(因为我调试的时候发现orderBindingSource.CurrencyManager没有收到任何事件)导致跟orderBindingSource绑定的dataGridView不更新
那么问题是为什么删除的时候能够正常更新呢?
不解?望大家指点
谢谢! --------------------编程问答-------------------- --------------------编程问答-------------------- 請參考
http://itgroup.blueshop.com.tw/TimothyChi/blog?n=convew&i=389371
补充:.NET技术 , C#