代码之家  ›  专栏  ›  技术社区  ›  Yngve B-Nilsen

实体框架4多对多不删除实际实体

  •  2
  • Yngve B-Nilsen  · 技术社区  · 16 年前

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

    文章*-*评论

    和

    项目*-*评论

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

    问题是,当我从代码中的文章中删除注释(使用article.comments.remove([某些注释实体])时,它只从ArticleComments中删除该行,而不是自己删除实际的注释。

    有什么解决办法吗?

    我考虑过在projectcomments表中将其设置为triggerOnDelete,但是我觉得应该只使用EntityFramework4的东西就可以实现这一点。

    2 回复  |  直到 16 年前
        1
  •  2
  •   Padel    16 年前

    您所做的操作只会删除项目和注释之间的关联(不会从注释表中删除数据,而是从项目注释中删除数据)。

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

    您还可以在调用savechanges后放置brea kpoint,并查看使用intellitrace对SQL服务器执行的查询(或使用SQL配置文件作为最后的手段)。

    当做。。。

        2
  •  0
  •   Yury Tarabanko    16 年前

    尝试将“删除”操作设置为“层叠”。它在关联属性中。