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也在告诉你同样的事情!