DeleteOnSubmit不存在?

时间:2011-01-10 19:33:11

标签: c# linq

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

这是我的命名空间。我在寻找System.Data.Linq;但它似乎没有任何地方,我想这是已经转移到System.Linq,因为我可以访问Linq中的大多数其他东西。我找到了System.Data:Linq,但没有区别。

这是我的方法:

public void deleteStudienummer(int studienummer)
{
    dbcontent = new DBEntities();

    var dQry = from members in dbcontent.Medlemmer
               where members.Studienummer == studienummer
               select members;

    foreach (var member in dQry)
    {
        dbcontent.***
    }
    dbcontent.AcceptAllChanges();
    Console.WriteLine("delete member should have occured");
}

***应该是DeleteOnSubmit,但我只有DeleteDatabaseDeleteObject,我尝试了后者,但它不起作用。

还尝试了dbcontent.Medlemmer.*但仍未出席。

并且AcceptAllChanges()应该是.submitChanges(),但也不存在。

5 个答案:

答案 0 :(得分:4)

据我所知DeleteOnSubmit只能从'Table'调用,而不能从DataContext调用。看起来你正试图从上下文中调用DeleteOnSubmit

应为dbcontent.Medlemmer.DeleteOnSubmit(member);

使用Linq to Entities时,dbContent.DeleteObject(member)可用于标记删除。之后需要调用dbContent.SaveChanges()来应用更改。 (AcceptAllChanges()不会删除)。

答案 1 :(得分:1)

您不会在DeleteOnSubmit上致电DataContext - 您可以通过ITableTable<TEntity>致电dbcontent.Medlemmer.DeleteOnSubmit(member); 。例如:

DataContext.SubmitChanges

System.Data.Linq应该出现在......

命名空间没有改变,所以我不确定为什么System.Data.Linq.dll没有显示给你。你有DBEntities的参考吗?如果您没有该引用,我很惊讶您的代码正在构建,因为{{1}}类需要这样做。

答案 2 :(得分:1)

您需要添加对System.Data.Linq的引用 Picture

答案 3 :(得分:1)

您可以尝试以下方法:

   foreach (var member in dQry)
    {
        dbcontent.Medlemmer.DeleteOnSubmit(member);
    }

答案 4 :(得分:1)

我也遇到了这个问题,不得不添加对System.Data.Linq的引用。

但是,除了添加System.Data.Linq的引用外,还要删除以下using个参数:

//using System.Linq;
//using System.Linq.Expressions;