c# - Entity Framework 4 多对多不删除实际实体

标签 c# sql-server entity-framework-4

我在 SQL Server 2008 数据库上有一个 EF4 模型。在我的模型中,我有一个多对多的关系:

文章 * - * 评论

项目 * - * 评论

在我的模型中,我只是创建了一个关联并将其设置为多对多。在我的数据库中,我得到了另外两个表 ArticleComments 和 ProjectComments,它们只包含每个表的主键。

问题是,当我在我的代码中删除文章中的评论时(使用 article.Comments.Remove([some comment entity]),它只会删除 ArticleComments 中的行,而不是实际的评论本身。

有什么解决办法吗?

我考虑过将其设置为 ProjectComments 表中的 ondelete 触发器,但我认为这应该仅使用 Entity Framework 4 的东西就可以实现。

最佳答案

您所做的只是删除文章和评论之间的关联(不会删除 Comments 表中的数据,而是删除 ArticleComments 中的数据)。

要删除 Comment,您必须在上下文实例上调用 DeleteObject 方法。这也将删除评论和文章之间的关联(如果我是对的,也会删除评论和项目之间的关联)。

您还可以在调用 SaveChanges 之后放置一个断点,并查看使用 IntelliTrace(或使用 SQL 配置文件作为最后手段)对 SQL Server 执行的查询。

问候...

关于c# - Entity Framework 4 多对多不删除实际实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3107982/

相关文章:

c# - 如何在自定义 ModelBinder 中从 body 获取数据?

mysql在类似操作中获得最大匹配

sql-server - 游标有什么问题?

c# - EF4 ObjectContext.EntitySet.AddObject() 级联插入

c# - 将 AutoMapper 与 WCF 数据服务和 EF4 集成的最佳实践

c# - 这是使用泛型检查空值的最佳方法吗?

c# - IronPython 在创建实例时设置属性值(如 c#)

c# - '无法加载文件或程序集 'netstandard, Version=2.0.0.0, ...'。不应加载引用程序集以执行

sql检查2列中的逻辑错误

c# - 如何在 Entity Framework 4.0 中删除多对多循环?