mysql - 如何从 VB/C# EF 代码中删除从属表中的记录?

标签 mysql vb.net linq entity-framework

VS2013 更新 4、VB(或 C#)、EF 6.0、SQL、LINQ

对于我来说,以明确的方式提出这个问题是一个困难的问题,因为我不确定使用正确的术语。总而言之,我的代码删除了记录中的项目,但将辅助表中的指针设置为 NULL,而不是删除那里的记录。以下是我的模型和代码的简单表示。

Public Class DbContext
  Public Property records As DbSet(Of record)
End Class

Public Class record
  Public Property recordID As Integer
  Public Property DataItems As New List(Of DataItem)
End Class

Public Class DataItem
  Public Property DataItemID As Integer
  Public Property Data As Integer
End Class

如果我使用 .Remove() 执行代码,记录中的每条记录最终都会有 0 个数据项(我可以在 VS Debug模式下看到这一点),但数据项表仍然充满记录,所有记录都带有 NULL 指针。 (此段落在最初发布后进行了更改,并且删除了评论中提到的错误代码)

我知道我可以将以下内容添加到公共(public)类 DbContext:

Public Property DataItems As DbSet(Of DataItem)

然后我可以遍历并删除所有具有 NULL 指针的 DataItem,但这似乎不是应该完成的方式,因此我请求帮助以了解在这种情况下我应该如何编码.

LINQ 中是否有正确的方法从列表中删除记录,以便实际记录也被删除,而不仅仅是将指针设置为 NULL?

最佳答案

为了给有同样问题的其他人提供答案,上面的评论提供了对我有用的解决方案。我必须手动删除子项,并且在其他情况下创建一个方法来搜索和删除返回指针中包含 NULL 的记录。使用RemoveRange() 的建议效果很好。虽然设置级联删除似乎是一个很好的解决方案,但我不想在 SSMS 中手动设置它,所以我现在进行手动删除,直到有人可以解释如何从模型定义在 EF 中设置它。

关于mysql - 如何从 VB/C# EF 代码中删除从属表中的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32128939/

相关文章:

mysql - 我如何在表中存储项目的重复项?

mysql - Mac MAMP mysql 错误 1045 (2800)

c# - 跟踪正在移动的文件(可能在磁盘之间),VB.NET(或C#)的最佳方法

LINQ - 使用类型计数对对象进行分组

c# - Linq 按列表中的值分组

mysql - 哪个更快....许多插入单值语句或具有多个值的插入语句?

php - foreach 循环和 SQL (PDO) 的问题

vb.net - 构建/检查文件的哈希值

mysql - 在 vb.net 中创建数据库配置文件

c# - Linq - 用引号聚合字符串