大量删除EF Core中的引用(多对多)

时间:2016-08-06 05:10:18

标签: c# entity-framework entity-framework-core

目前EF Core不支持使用Shadow元素进行多对多映射,而是需要使用described here之类的格式。

我已经实现了这一点,但我正在努力寻找一种方法来进行大规模删除。因此,在EF Core文档站点上列出的示例中,我想删除与帖子关联的所有标记。

我试过了

<?php $fp = fopen('output.txt','w'); $conn = oci_connect('MYUSER', 'MYPASSWORD', 'xxx.xxx.xxx.xxxx/DBTEST','AL32UTF8'); $query = "SELECT ABALPH FROM CRPDTA.F0101 WHERE ROWNUM <= 1 ORDER BY NULL"; $stid = oci_parse($conn, $query); oci_execute($stid, OCI_NO_AUTO_COMMIT); while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) { fwrite($fp, $row['ABALPH']."\n"); } fclose($fp); ?> 然后是Post.PostTags.Clear()

但没有任何反应。

在EF Core中删除多对多关系的正确方法是什么。

1 个答案:

答案 0 :(得分:1)

试试这个

    //Change the model names according to yours
    var post = db.Posts.Include(p => p.PostTags).Single(/*something here*/);
    db.PostTags.RemoveRange(post.PostTags.ToArray());
    db.SaveChanges();

它适用于我。