在我的应用程序中,我实例化一个新的Linq-to-SQL对象,并将其传递给一个WinForms窗口,以便用户可以填写其余的部分。在实例化新的Linq-to-SQL对象后防止插入
如果用户取消表单,我不希望数据被插入。
问题是,当下次调用SubmitChanges
时,记录仍然被插入。
有没有简单的方法来防止这种情况?当我已经拥有所有我需要的字段时,我不想创建一个与Linq-to-SQL类具有相同字段的单独类。
我发现这篇文章http://www.codeproject.com/KB/linq/linq-to-sql-detach.aspx,但它似乎解决了一个不同的问题,似乎并不像一个简单的解决方案。
更新: 我能够重现控制台应用程序中的行为。 这里是我使用的代码(与像客户和地区不同的名称):
MyDatabase db = new MyDataBase(@"Data Source:d:\test.sdf");
Customer customer = new Customer();
customer.Name = "customer 1";
customer.Country = db.Country.FirstOrDefault();
db.SubmitChanges();
为我增加了“国家”分配新建分配FY线插入后立即发生。本例中的国家数据存储在不同的表中。
有没有像'提交'和'取消'按钮? – 2011-02-12 09:01:21
@serkan是的输入表单有一个保存和一个取消按钮。在保存按钮上,我将变量设置为true。该变量在FormClosing-Event上被检查。如果它是真的,表单的值将保存到LINQ2SQL对象(它是表单对象的成员)。 – fnx 2011-02-12 09:29:52