L2S绑定源是否未将“addnew”对象添加到datacontext?

时间:2014-02-17 13:13:03

标签: c# winforms linq-to-sql datacontext bindingsource

我在绑定到datagridview的winform上使用Linq to Sql bindingsource。在我执行AddNew和SubmitChanges后,它似乎没有保存到数据库。

var myObject = (myObject)myBindingSource.AddNew();
myObject.ID=123;
myObject.prop="test";
myDataContext.SubmitChanges();

然后当我检查数据库时,对象不在那里。 我想插入一个对象的bindingsource不会告诉datacontext吗?

如果我将代码更改为:

var myObject = (myObject)myBindingSource.AddNew();
myObject.ID=123;
myObject.prop="test";
myDataContext.MyObjects.InsertOnSubmit(myObject);
myDataContext.SubmitChanges();

它有效。这似乎是双重工作,因为我希望绑定源能够处理它。

1 个答案:

答案 0 :(得分:0)

这个问题有点老了-我实际上忘记了我自己问过的! 因此,一年多以后在寻找同一问题时碰到它很奇怪。 我确实找到了解决方案。

起初,我使用了类似的方法(无效):

myBindingSource.DataSource = myLinqToSqlDataContext.SomeTable.ToList();

当我使用时:

myBindingSOurce.DataSource = myLinqToSqlDataContext.SomeTable.Take(20);

bindingsource将更新基础数据库以进行插入和删除操作。

所以我想确保数据源是IQueryable而不是List是很重要的。