【问题标题】:How to delete a db row in LINQPAD如何在 LINQPAD 中删除数据库行
【发布时间】:2013-09-07 13:14:19
【问题描述】:

总 NOOB 问题。我已经使用新的 linqpad 大约 20 分钟了。太好了!

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

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

Companies.DeleteObject(co);

【问题讨论】:

  • 不应该是DeleteObject(co)然后SaveChanges()吗?
  • @sgmoore - 请参阅下面的错误。我找到了另一种删除数据库中行的方法,因为我没有时间浪费在这上面。我直接创建了一个到数据库的新连接。我最初的努力是尝试通过上下文删除实体,但我无法让它发挥作用。
  • 只有在使用 Companies.DeleteObject(co) 时才会出现该错误。如果您只调用 DeleteObject(co) (或 this.DeleteObject(co) 如果您愿意),则不会发生错误。

标签: linqpad


【解决方案1】:

这是旧的......我不知道是否/何时添加它(可能是为了响应这个确切的场景)......但你可以完成这个(在你给定的例子中)如下:

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

Companies.DeleteOnSubmit(Companies.First()); 

Companies.Context.SubmitChanges();

【讨论】:

  • 使用SubmitChanges()就够了,不用调用Companies.Context.SubmitChanges(),这是在Linqpad 5中。
【解决方案2】:

您需要在上下文中 SaveChanges (Companies) 才能删除您的行。

Companies.SaveChanges();

【讨论】:

  • 抛出此错误:无法执行文本选择:“System.Data.Entity.DbSet”不包含“DeleteObject”的定义,并且没有扩展方法“DeleteObject” ' 可以找到接受“System.Data.Entity.DbSet”类型的第一个参数(按 F4 添加 using 指令或程序集引用)
  • .. 并且 linqpad 没有明确公开上下文。
猜你喜欢
  • 2012-02-11
  • 2015-04-08
  • 2018-03-30
  • 1970-01-01
  • 2011-11-19
  • 2020-03-12
  • 2023-02-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多