如何知道使用linq to sql概念在wpf中更新,删除或插入了哪些记录

时间:2012-07-01 00:38:56

标签: c# wpf linq-to-sql

 MydatabaseDataContext MyDB = new MydatabaseDataContext();

 Employee MyEmp = new Employee();
 MyEmp.EmpID = 5039;
 MyEmp.EmpName = "XXX";
 MyDB.Employees.InsertOnSubmit(MyEmp);
 MyDB.SubmitChanges();

 IQueryable<Employee> _DeleteQuery = from dq in MyDB.Employees where dq.EmpID == 5039 select dq;
 foreach (Employee delete in _DeleteQuery)
 {
      MyDB.Employees.DeleteOnSubmit(delete);
 }
 MyDB.SubmitChanges();

 IQueryable<Employee> _UpdateQuery = from uq in MyDB.Employees where uq.EmpID == 5039 select uq;

 foreach (Employee Update in _UpdateQuery)
 {
     Update.EmpName = "yyy";
 }
 MyDB.SubmitChanges();

使用上面的代码,我可以插入,删除和更新记录。如果插入,删除和更新成功完成,我必须显示一些消息,如“插入,删除和更新已成功完成”。

在ADO.NET中它将返回一些int值(1)。但我不知道如何在linq中获得像sql概念那样的价值。

如果我得到该值,我可以显示上面提到的一些消息。那我该怎么做呢

1 个答案:

答案 0 :(得分:2)

看看DataContext.GetChangeSet MethodChangeSet.ToString()会给你一条消息,比如

  

{Inserts:x,Deletes:x,Updates:x}

您也可以直接访问Properties

int itemsToAddBeforeSubmitChanges = MyDB.GetChangeSet().Inserts.Count;
MyDB.SubmitChanges();
int itemsToAddAfterSubmitChanges = MyDB.GetChangeSet().Inserts.Count;