如何在LINQPAD中删除数据库行

10

完全新手问题。我已经使用新的LinqPad大约20分钟了,太好了!

但是现在我想在数据库中删除一行。我正在使用EF5.0连接。我在帮助文件或网络上似乎找不到任何信息。我能找到的唯一一件事是DeleteOnSubmit,但它与EF不兼容(据我所见)。我也尝试了DeleteObject,但也不起作用。这是我尝试过的。

var co = Companies.First();
co.Dump();

Companies.DeleteObject(co);

这不应该只是 DeleteObject(co) 然后 SaveChanges() 吗? - sgmoore
@sgmoore - 请看下面的错误。我找到了另一种删除数据库行的方法,因为我没有时间浪费在这上面。我直接创建了一个新的连接到数据库。我的原始尝试是通过上下文删除实体,但我一直无法让它工作。 - Greg
1
只有在使用 Companies.DeleteObject(co) 时才会出现该错误。如果您只调用 DeleteObject(co)(或者如果您喜欢,可以使用 this.DeleteObject(co)),则不应该出现错误。 - sgmoore
2个回答

15

这是旧的内容...我不知道这是什么时候添加的(可能是为了应对这种情况)...但是您可以按照以下方式完成此操作(在您给出的示例中):

//test the following line to ensure the context doesn't complain about the .First() reference

Companies.DeleteOnSubmit(Companies.First()); 

Companies.Context.SubmitChanges();

1
只使用 SubmitChanges() 就足够了,不需要调用 Companies.Context.SubmitChanges(),这是在 Linqpad 5 中。 - Diego Osornio

3

要删除行,你需要在你的上下文 (Companies) 上调用 SaveChanges 方法。

Companies.SaveChanges();


出现了以下错误:无法执行文本选择:“System.Data.Entity.DbSet<DAL.Entities.CompanyEntity>”不包含“DeleteObject”的定义,也没有接受类型为“System.Data.Entity.DbSet<DAL.Entities.CompanyEntity>”的第一个参数的扩展方法“DeleteObject”(按F4添加使用指令或程序集引用)。 - Greg
1
.. 而且 LinqPad 并没有明确地暴露上下文。 - Greg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接