我在 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/