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
,但我只有DeleteDatabase
和DeleteObject
,我尝试了后者,但它不起作用。
还尝试了dbcontent.Medlemmer.*
但仍未出席。
并且AcceptAllChanges()
应该是.submitChanges()
,但也不存在。
答案 0 :(得分:4)
据我所知DeleteOnSubmit
只能从'Table'调用,而不能从DataContext调用。看起来你正试图从上下文中调用DeleteOnSubmit
。
应为dbcontent.Medlemmer.DeleteOnSubmit(member);
使用Linq to Entities时,dbContent.DeleteObject(member)
可用于标记删除。之后需要调用dbContent.SaveChanges()
来应用更改。 (AcceptAllChanges()
不会删除)。
答案 1 :(得分:1)
您不会在DeleteOnSubmit
上致电DataContext
- 您可以通过ITable
或Table<TEntity>
致电dbcontent.Medlemmer.DeleteOnSubmit(member);
。例如:
DataContext.SubmitChanges
System.Data.Linq
应该出现在......
命名空间没有改变,所以我不确定为什么System.Data.Linq.dll
没有显示给你。你有DBEntities
的参考吗?如果您没有该引用,我很惊讶您的代码正在构建,因为{{1}}类需要这样做。
答案 2 :(得分:1)
您需要添加对System.Data.Linq的引用
答案 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;