C# L2S bindingsource是否不添加';新增';对象到datacontext?
我在绑定到datagridview的winform上使用Linq到Sql绑定源。在我执行AddNew和SubmitChanges之后,它似乎没有保存到数据库中C# L2S bindingsource是否不添加';新增';对象到datacontext?,c#,winforms,linq-to-sql,datacontext,bindingsource,C#,Winforms,Linq To Sql,Datacontext,Bindingsource,我在绑定到datagridview的winform上使用Linq到Sql绑定源。在我执行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.SubmitChanges();
然后,当我检查数据库时,对象不在那里。
bindingsource没有告诉datacontext我要插入一个对象吗
如果我将代码更改为:
var myObject = (myObject)myBindingSource.AddNew();
myObject.ID=123;
myObject.prop="test";
myDataContext.MyObjects.InsertOnSubmit(myObject);
myDataContext.SubmitChanges();
它起作用了。这似乎是双重的工作,因为我期望bindingsource来处理它。这个问题有点老了——我忘了我自己问过它! 因此,在一年多以后的搜索中遇到同样的问题是很奇怪的。 不过我确实找到了解决办法 起初,我使用了类似这样的方法(不起作用):
myBindingSource.DataSource=myLinqToSqlDataContext.SomeTable.ToList()代码>
当我使用:
myBindingSOurce.DataSource = myLinqToSqlDataContext.SomeTable.Take(20);
bindingsource将毫无问题地更新基础数据库的插入和删除
所以我认为确保数据源是一个IQueryable而不是一个列表是很重要的 嗯。。。。实际上,我遇到了一种情况,bindingsource最好不要立即插入提交对象。当用户在向下钻取表单中设置更多详细信息并决定他们无论如何都不想要该对象时,您可以取消该操作,而不必在datacontext中使用对象!它变得越来越奇怪了——我刚刚发现了一些以前在没有“InsertOnSubmit”的情况下工作的代码。现在不再是了。