【问题标题】:How to delete rows from a many-to-many table如何从多对多表中删除行
【发布时间】:2012-09-10 11:17:50
【问题描述】:

例如,我可以将这 3 个表列出示例字段:

作者 --> AuthorId, Name, [...]

图书 --> BookId、书名、[...]

AuthorBooks --> AuthorId, BookId

如何从多对多表 (AuthorBooks) 中删除行?我想做这样的事情:

var author = db.AUTHORS.Single(x => x.AUTHORID == 1);
var fictionBooks = author.BOOKS.Where(x => x.type == "fiction");
fictionBooks.Delete(); // This is what I want to do

如何在多对多表上执行这样的删除操作?

【问题讨论】:

  • @DarthVader 这不像是提交问题,而是我找不到 .Delete() 或类似的方法。我用 .Delete() 作为我想要做的例子......
  • 好吧,我以为你把它包装起来删除。但是在那个集合上试试remove()

标签: c# asp.net-mvc entity-framework


【解决方案1】:

您必须遍历集合并删除每个项目。您始终可以将其包装在扩展方法中,以简化删除示例中的集合。

public static class FictionBookExtensions
{
    public static void Delete(IEnumerable<YourFictionBookClass> fictionBooks)
    {
        foreach (var fictionBook in fictionBooks)
        {
            db.DeleteObject(fictionBook);
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多