【问题标题】:Entity Framework with many-to-many deleting具有多对多删除功能的实体框架
【发布时间】:2010-02-27 01:58:03
【问题描述】:

我正试图围绕 Entity Framework 4 展开思考。这可能是一个简单的问题 ;)

我有以下实体:文章、评论和图片。文章与评论具有一对多的关联。文章与图片也有多对多的关系。

我的问题是删除包含评论和图片的文章的正确方法是什么。请注意,有以下几种情况:

  1. 文章既没有评论,也没有关联的图片。
  2. 文章有评论但没有图片。
  3. 文章包含不与其他文章共享的评论和图片。
  4. 文章包含与其他文章共享的评论和图片。 (只能分享图片,cmets是独家的)。

我已经注意到刚刚执行:

_db.DeleteObject(art);

不起作用,我必须先删除评论和图片。此外,如果图片是共享的,我只想删除与特定文章的关联,而不是所有关联。

我确信有更简单的方法来实现这一点 - 是否有像“级联删除”这样可以处理这种情况的方法?

感谢您的帮助!

【问题讨论】:

    标签: c# entity-framework


    【解决方案1】:

    是的,有on delete cascade,但在实体框架中没有。但是,您可以将它们放在多对多链接表的外键上。

    【讨论】:

    • @LukeLed:引用链接:“如果向模型添加级联删除规则,则必须在数据库中有相应的 DELETE 规则。”,但还是有好处。
    • 那是因为它可能在没有数据库中相应规则的情况下工作的唯一方法是运行一个大的可能错误(考虑未提交的数据)DELETE FROM ... WHERE ID IN SELECT .... 语句,当每个 RDBMS 都有这似乎是一种奇怪的方法内置更好的解决方案。
    • 非常感谢您的cmets和建议!
    猜你喜欢
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    相关资源
    最近更新 更多