如何使用 EF4 Fluent API 将删除级联到链接表中?

2024-01-10

我在现有 (MSSQL 2008 R2) 数据库中有两个表,它们通过链接表关联。

这两个表是“计划”和“提示”。链接表是“PlanTipLinks”。

计划可以有许多提示,并且提示可以与多个计划关联(即,这是多对多的关系)。在应用程序中,我只关心“Plan.Tips”关系。我不需要 Tip.Plans 逆关系。

链接表中的外键引用不能为空。

我使用以下流畅的 API 代码来映射这种关系:

modelBuilder.Entity<Plan>()
    .HasMany(p => p.Tips)
    .WithMany()
    .Map("PlanTipLinks", (p, t) =>
        new
        {
            PlanId = p.Id,
            TipId = t.Id
        });

这将在表中创建正确的条目。问题是,当我删除计划时,PlanTipLinks 表上出现外键异常。

想必我需要告诉它在删除计划时级联到 PlanTipLinks 表中,但我不知道该怎么做。我似乎无法使用 HasMany/WithMany 方法调用 WillCascadeOnDelete 方法。

我在这里缺少什么?


从 EF CTP4 开始,无法directly通过 Fluent API 打开多对多关联的级联删除。

也就是说,如果您的目的是确保可以删除该原则(例如Plan记录),而不必担心链接表中的依赖记录(即计划提示链接)那么您不需要在数据库上打开级联,因为当涉及多对多关联时,EF Code First 将处理客户端的级联删除。

例如,当您删除一个Plan对象,代码优先足够聪明,可以先发送一条删除语句来删除对象中的依赖记录计划提示链接表,之后它将发送另一个删除语句来删除计划记录。

欲了解更多信息,请查看以下帖子:
EF CTP4 多对多关系级联删除 https://stackoverflow.com/questions/4272403/ef-ctp4-cascade-delete-on-many-to-many-relationship/4273600#4273600

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 EF4 Fluent API 将删除级联到链接表中? 的相关文章

随机推荐

  • 弹出到 expokit 时,Expo 卡在“配置同步”上

    当尝试从 expokit 中弹出项目时 它不会完成并卡在config syncing一个多小时 当我用 expo 创建一个新项目然后运行时也会发生这种情况expo run android 我解决了下面的步骤 删除文件以获得新的感觉 rm r
  • 字符串值中的 Coder 是什么?

    我正在读取 CSV 文件 方法是使用com opencsv CSVReader像下面这样 String headers csvReader readNext 标题的值如下屏幕截图所示 这里的编码器是什么 以黄色突出显示 为什么第一个索引的值
  • 在与 ActiveSync 同步的同时读取 PDA 目录的内容

    我有一个项目 需要复制 PDA 中找到的文件 就我而言 如果这有什么区别的话 它是 MC3000 我安装了 ActiveSync 它为我创建了同步文件夹 效果很好 但是 我希望不仅能够在其 MyDocument 文件夹中读取 PDA 的内容
  • 如何处理选项卡更改时的 CSS 动画

    我正在开发一个小轮盘游戏 例如 https csgofast com https csgofast com 我的问题是 当我在实际选项卡中时 与变换和过渡一起使用的轮盘动画效果很好 问题是 当我移动到另一个选项卡或最小化时 在轮盘赌开始之前
  • 在 Web Api 控制器中将 JSON 反序列化为字典

    我有这样的 JSON 字符串 1 1 3 5 2 2 5 6 3 5 6 8 我想将其发送到 Web Api 控制器而不使用 ajax 请求进行更改 ajax type POST url Api Serialize Dict data JS
  • 设置HBase、hadoop、hive通过hive访问Hbase的正确方法是什么?

    我在配置和安装 hbase hadoop hive 时遇到问题 到目前为止我在 ubuntu 14 04 3 LTS 的虚拟机上做了什么 像这样安装了jdk和版本jdk1 8 0 60 https askubuntu com questio
  • 根据 textContent 中的索引突出显示文本

    Bounty 正如 jsPerf 所展示的 测试时最新发布版本的 Firefox Chrome 和 Internet Explorer 中最快的解决方案将获得奖励or创建此类解决方案最有用的答案由我自行决定 哇哈哈 I ll be most
  • 卸载后执行命令

    我需要卸载才能运行命令after它删除了已安装的文件 UninstallRun 没有用 据我所知 它在文件被删除之前运行 我有点需要一个 卸载后 标志 关于我如何实现上述目标有什么建议吗 See 卸载事件函数 http www jrsoft
  • 包含过期项的哈希表

    我想实施一个HashTable 或者也许是一个HashSet or Dictionary 其中有独特的成员 一段时间后就会过期 例如 Items expire automatically after 10 seconds Expiratio
  • Celery:WorkerLostError:工作人员过早退出:信号 9 (SIGKILL)

    我在 Django 应用程序 在 Elastic Beanstalk 上 中使用 Celery 和 RabbitMQ 来管理后台任务 并使用 Supervisor 对其进行守护进程 现在的问题是 我定义的周期任务之一失败 在正常工作一周后
  • 7u45 webstart 中出现新的死锁错误?

    java 7u45 的乐趣仍在继续 这次是 webstart 内部陷入僵局 这种情况在启动大型应用程序 约 100 个 jar 时非常一致地 每次 发生 还有其他人遇到过这个问题或知道任何解决方法吗 除了恢复到 1 7 0 40 之外 Th
  • Jekyll 自动目录

    我已经建立了一个基于 Jekyll 代码的网站阿帕奇构建者 http buildr apache org Buildr 网站根据标题中的标题自动为每个页面生成一个目录 textile格式文件 例如 您使用纺织品编写一个页面 标记出标题 如下
  • zftool 的行为不符合预期

    我在 Linux 中有一个托管服务 我正在尝试在 zend Framework 2 上开发一个应用程序 我想使用 zftool 但无论我运行哪个 zftool 命令 我总是得到主页的 HTML 我将非常感谢任何帮助 以下是重现步骤 1 我安
  • 以角度 2 实现旋转器

    我尝试在我的应用程序中使用微调器 因为有大量数据需要时间来加载 但这是问题所在 我已将此链接作为参考 Angular2 的预引导加载屏幕 https stackoverflow com questions 35243443 pre boot
  • C++ 中的引用计数究竟意味着什么?

    到底什么是引用计数 特别是对于 C 来说它是什么 如果我们不处理这些问题 我们可能会面临哪些问题 所有语言都需要引用计数吗 到底什么是引用计数 特别是对于 C 来说它是什么 简单来说 引用计数就是对某个对象的引用进行计数 通常 C 采用以下
  • 如何将 vim 选项的值复制到寄存器

    在 vim 中你可以设置选项 set 例如 设置咒语 启用拼写控制 和 设置拼写文件 home custom spell txt 设置自定义拼写文件的位置 您可以使用 echo 打印选项的值 例如 回声 拼写文件 现在我想将选项拼写文件的值
  • Ubuntu下Visual Studio Code显示错误

    我的 Visual Studio Code 遇到了好几天的问题 无法启动它 事实上 窗口几乎全黑 这是我从终端启动它时的控制台输出 bash impossible de r gler le groupe de processus du te
  • 如何构建具有未知列数的 WPF 数据网格

    我需要从 txt 中获取的字符串数组集合构建并显示 WPF 数据网格 问题是我不知道先验的列数 即单个数组中的项目数 所以我在我的xaml中定义
  • MySQL 上 NOT IN 的替代方案

    我有一个疑问 SELECT DISTINCT phoneNum FROM Transaction Register WHERE phoneNum NOT IN SELECT phoneNum FROM Subscription LIMIT
  • 如何使用 EF4 Fluent API 将删除级联到链接表中?

    我在现有 MSSQL 2008 R2 数据库中有两个表 它们通过链接表关联 这两个表是 计划 和 提示 链接表是 PlanTipLinks 计划可以有许多提示 并且提示可以与多个计划关联 即 这是多对多的关系 在应用程序中 我只关心 Pla