Linq to sql 为什么删除列表<;实体>;调用SubmitChanges()时没有反射?
我有这样的代码,例如:Linq to sql 为什么删除列表<;实体>;调用SubmitChanges()时没有反射?,linq-to-sql,c#-3.0,Linq To Sql,C# 3.0,我有这样的代码,例如: var list = (from item in db.Table select item).ToList(); [使用DX GridControl修改、添加、删除列表中的项目时进行处理] [确保插入项目] [我可以看到列表中没有项目] db.SubmitChanges() 不反映已删除项的数据库的更改。 怎么了?您是否使用db.SubmitChanges()应用更改方法? msdn中的示例: var deleteOrderDetails =
var list = (from item in db.Table
select item).ToList();
[使用DX GridControl修改、添加、删除列表中的项目时进行处理]
[确保插入项目]
[我可以看到列表中没有项目]
db.SubmitChanges()
不反映已删除项的数据库的更改。
怎么了?您是否使用
db.SubmitChanges()应用更改数据上下文上的代码>方法?
msdn中的示例:
var deleteOrderDetails =
from details in db.OrderDetails
where details.OrderID == 11000
select details;
foreach (var detail in deleteOrderDetails)
{
db.OrderDetails.DeleteOnSubmit(detail);
}
try
{
db.SubmitChanges();
}
catch (Exception e)
{
Console.WriteLine(e);
// Provide for exceptions.
}
资料来源如下:
我不确定您是否可以将列表中的更改填充到数据库中,如果这是您试图实现的目标。您无法修改列表以更新数据库。您必须修改数据库实体集合。例如:db.Table.Remove(实例)
编辑:我相信上面的语法只适用于EF4。对于原始EF,您需要使用DeleteOnSubmit
,这是实体容器上的一种方法。因此我应该保留一个包含已删除Id和DeleteInSubmit(Id)的列表。这是有道理的…我会试试。不,你应该向DeleteOnSubmit提供实体对象,将它们放入挂起的删除状态。我想anthares也在告诉你同样的事情!