当前位置:主页   - 电脑 - 网站开发 - ASP.Net
LINQ to SQL语句(12)之Delete和使用Attach
来源:网络   作者:   更新时间:2012-08-02
收藏此页】    【字号    】    【打印】    【关闭

  删除(Delete)1.简单形式

  说明:调用DeleteOnSubmit方法即可。

OrderDetail orderDetail =
  db.OrderDetails.First
  (c => c.OrderID == 10255 && c.ProductID == 36);
db.OrderDetails.DeleteOnSubmit(orderDetail);
db.SubmitChanges();

  语句描述:使用DeleteOnSubmit方法从OrderDetail 表中删除OrderDetail对象。调用SubmitChanges 将此删除保持到数据库。

  2.一对多关系

  说明:Order与OrderDetail是一对多关系,首先DeleteOnSubmit其OrderDetail(多端),其次DeleteOnSubmit其Order(一端)。因为一端是主键。

var orderDetails =
  from o in db.OrderDetails
  where o.Order.CustomerID == "WARTH" &&
  o.Order.EmployeeID == 3
  select o;
var order =
  (from o in db.Orders
   where o.CustomerID == "WARTH" && o.EmployeeID == 3
   select o).First();
foreach (OrderDetail od in orderDetails)
{
  db.OrderDetails.DeleteOnSubmit(od);
}
db.Orders.DeleteOnSubmit(order);
db.SubmitChanges();

  语句描述语句描述:使用DeleteOnSubmit方法从Order 和Order Details表中删除Order和Order Detail对象。首先从Order Details删除,然后从Orders删除。调用SubmitChanges将此删除保持到数据库。

  3.推理删除(Inferred Delete)

  说明:Order与OrderDetail是一对多关系,在上面的例子,我们全部删除CustomerID为WARTH和EmployeeID为3 的数据,那么我们不须全部删除呢?例如Order的OrderID为10248的OrderDetail有很多,但是我们只要删除ProductID为11的OrderDetail。这时就用Remove方法。

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明