在我的應用程序中,我實例化一個新的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