CodeFirst 级联删除问题

EF CodeFist 多重外键约束  对于多重外键的概念,请参考 Sql 多重外键约束 一章 http://blog.csdn.net/x_craft/article/details/40091071 阅读详情

codefirst涉及到级联删除时可能会报下面的错误:

table 'TableName' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.

这是由于同一张表中使用了同一个外键表,且codefirst自动为它们创建了级联删除约束。

此时可以在OnModelCreating方法中设置不创建级联删除约束(实际开发中需要我手动实现级联删除):

protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Appointment>().HasRequired(a => a.Sponsor).WithMany(u => u.SpoAppointments).WillCascadeOnDelete(false);
            modelBuilder.Entity<Appointment>().HasRequired(a => a.Recipient).WithMany(u => u.RecAppointments).WillCascadeOnDelete(false);
        }

参考链接:http://www.cnblogs.com/Gyoung/archive/2013/01/22/2871919.html
SQL FOREIGN KEY 约束 SQL FOREIGN KEY语名的使用,并熟练的撑握他,里面有举例子说明 立即下载

相关推荐

Obsidian和Typora图片路径同步终极指南:告别混乱的assets文件夹

本文详细解析了Obsidian与Typora图片路径同步的终极解决方案,通过Custom Attachment Location插件实现动态路径管理,解决了两款工具间图片兼容性问题。文章提供了从基础配置到高级应用的完整指南,帮助用户告别混乱的assets文件夹,提升工作效率。

g9h0i1的博客 824

用EF6更新数据库时出现外键错误解决方式

在“Package Manager Console”中执行update-database命令,出现异常信息: Introducing FOREIGN KEY constraint 'FK_dbo.Processes_dbo.Models_ModelId' on table 'Processes' may cause cycles or multiple cascade paths. Spec...

weixin_30443075的博客 717

手把手调试Android 10 DHCP服务:从dumpsys network_stack到DhcpServer.java的实战技巧

本文详细介绍了在Android 10中调试DHCP服务的实战技巧,从使用dumpsys network_stack分析服务状态到深入DhcpServer.java源码追踪问题。文章提供了完整的工具链配置、关键调试命令和常见问题解决方案,帮助开发者高效解决DHCP服务未启动、IP分配失败等典型问题,特别适合需要深入理解Android网络架构的开发者参考。

uu89012的博客 743

可能会导致循环或多重级联路径。请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。...

错误提示:可能会导致循环或多重级联路径。请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。 原因:自表连接(同一张表自己连接自己)不允许级联删除和级联更新。 一、sql语句 create table DataClass ( CID nvarchar(6) ...

weixin_30732487的博客 7107

把对讲门铃(控制底楼铁门)接入米家服务器

今天讲个跟SDR或者无人机无关的东西,技术含量不高,但是方便了我的生活。 现在家门有智能锁,汽车也可以远程解锁发动,NFC门禁也可以用某些手机复制,唯独楼下的铁门,必须用老式对讲门铃控制。 也就是说其它钥匙都可以不带,就剩这个钥匙还必须随身携带。 另外有时候人不在家,不能开楼下铁门,快递员也没法把东西送上楼。 ......

老邵的开源世界 6551

DRAM刷新refresh相关知识归类-基础小知识(三)

RAM每一位数据都是通过芯片内的一个小电容充电(或低电平)存储的。但随着时间的推移,电容逐渐失去电荷。为避免丢失存储的数据,必须定期刷新以将电荷(如果存在)恢复到其原始级别。此刷新过程包括读取每个位的值,然后将其写回。在此“刷新”期间,内存被占用,无法执行加载或存储位等正常操作。知道了应该这么做,但怎么去做以及有什么办法更有效率去做,就是接下来要整理的内容。

Paul 安的博客 1万+

ABP 可能会导致循环或多重级联路径。请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACT

将 FOREIGN KEY 约束 'FK_SubProjects_DataDictionaryItems_SubProjectTypeId' 引入表 'SubProjects' 可能会导致循环或多重级联路径。请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。

Martin 的博客 1897

Matlab生成dsp程序——环境搭建(c2000系列[F28335、F2837x]都适用)

一、环境配置 (28377D的操作是一模一样就是硬件设置的时候需要选择28377d进行相应的设置) 1)matlab与ccs联合编译需要安装对应的matlab版本和ccs版本,且只有2016a以上的matlab支持c2000系列。具体对应关系参照: http://software-dl.ti.com/ccs/esd/documents/ccs_matlab.html 2)matlab版本确定之后,还需要安装有关于ccs的相关软件: I、TI Code Composer Studio xxxx(对应

qq_42151264的博客 2万+

Solving the SQL Server Multiple Cascade Path Issue with a Trigger (转载)

Problem I am trying to use the ON DELETE CASCADE option when creating a foreign key on my database, but I get the following error: Msg 1785, Level 16, State 0, Line 3 Introducing FOREIGN K...

146

JW01二氧化碳传感器实战:5分钟搞定Arduino环境监测系统(附完整代码)

本文详细介绍了如何使用JW01二氧化碳传感器与Arduino快速搭建环境监测系统。通过简单的硬件连接和完整的代码示例,读者可以在5分钟内实现CO2浓度实时监测,并了解数据解析、常见问题解决及进阶应用扩展。JW01传感器的高精度和易用性使其成为创客和嵌入式开发者的理想选择。

kite3的博客 383

可维护的 SAP UI5 Theming 策略:从 CSS 级联与特性选择器到 UI Theme Designer 的工程化落地

摘要:SAP UI5主题化是一个涉及CSS级联、选择器特异性和主题参数的系统工程,与应用逻辑解耦以实现品牌化和无障碍适配。轻量级调整优先使用附加CSS,重大改动才考虑创建新主题。样式冲突需通过特异性原则解决,避免滥用!important。动态添加样式应使用addStyleClass而非直接操作DOM。主题可通过bootstrap参数、URL或运行时API设置,企业级主题推荐使用UI Theme Designer。自定义内容应消费主题变量以实现一致性,避免直接修改控件内部结构或内联样式。工程化落地需规范分层和

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 307

ABP,一张表的多个外键引用的是同一张表,生成迁移更新数据库提示“可能会导致循环或多重级联路径。请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他

解决办法是: 更改生成迁移文件内,级联更新或删除的配置 table.ForeignKey( name: "FK_PSProcessRelations_Processes_StartProcessID", column: x => x.StartProcessID, principalTable: "Processes

菜鸟不被菜 594

【部署】Kimi 接入OpenClaw完整步骤及关键注意事项

本文详细介绍了如何将Kimi AI接入OpenClaw系统的完整步骤。首先需确保环境满足OpenClaw版本要求和系统支持,然后通过配置向导完成本地网关设置和Kimi模型接入,包括API密钥配置。文章提供了详细的命令操作和界面截图指导,并重点说明了安全警告处理、服务状态检查、API密钥有效性验证等关键注意事项。最后还展示了Kimi流量消耗明细和问题排查方法,帮助用户顺利完成接入并解决常见问题。整个流程清晰明了,涵盖了从环境准备到最终验证的全部环节。

海兰 7200

.Net Entity Framework CodeFirst 中多次重复引用同一个外键问题

实际项目中,经常会遇到在一个表中多次引用同一个表的主键的情况。比如在部门表Department中,有正副两个主管:PrimaryManager ,SecondManager 。//部门类定义 public class Department { public int ID { get; set; } public string Name { get; set; }

永远行进 2789

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

EF CodeFirst 级联删除

 默认情况下CodeFirst会在外键约束中设置 删除规则 为级联(不会默认设置 更新规则 为级联) 当仅定义了导航属性如 public virtual Manager Manager { get; set; } 而没有显示定义外键如 CodeFirst不会设置 删除规则 为级联

丰达在线的专栏 6431

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

EFCodeFirst级联删除

默认情况下CodeFirst会在外键约束中设置 删除规则 为级联(不会默认设置 更新规则 为级联) 当仅定义了导航属性如 public virtual Manager Manager { get; set; } 而没有显示定义外键如 public int ManagerID { get; set; } CodeFirst不会设置 删除规则 为级联 在显示定义外键属性的情况下,级联删

kxinyu的专栏 2107

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

级联删除的注意事项

一对多场景,在子对象映射中开启级联删除情况下,删除父对象将自动删除其下所有子对象,需要注意一些事项:  √ 需要保证DbContext中已经加载了该父对象的所有子对象。  X  如果DbContext内未加载子对象将不级联删除子对象,  X 如DbContext只加载部分子对象也只级联删除这些子对象。 因此在查询父对象只应该使用Include("子对象属性名")查询(请看示例代码3)或者在

kxinyu的专栏 1378

EntityFramework的CodeFirst项目,实现主从表的增删改查

建立新项目 建立POCO 类 订单及订单项 public class Morder { public int ID { get; set; } [Display(Name = "订单号")] [Required] public string orderNumber { get; set; } public ICollect...

李小砍的技术博客 1408

CodeFirst与EntityFramework

项目添加EntityFramework命令:Install-Package EntityFrameworkCodeFirst默认规则1. 数据库映射:Code First 默认会在本地的SQL Expression数据库中建立一个和DbContext的子类的全名相同的数据库,全名指的是命名空间加上类名。当然后边会介绍怎么进行配置。2.表映射:Code First 默认会按照类型名复数建立...

ahe82105的博客 235

关闭EF4.x Code First的级联删除Cascade Delete

EF4.1~4.3 Code First模式级联删除是默认打开的,在同一个实体多次引用另一个实体时,需要单独设置关闭某个外键关系下的级联删除,需要写Fluent API代码,而且级联删除有时会造成麻烦。干脆整个关了吧: using System.Data.Entity.ModelConfiguration.Conventions; public class MyDbContext : DbCo...

weixin_34352005的博客 196

Entity Framework Code First级联删除

使用Data Annotations: 如果我们要到一对主从表增加级联删除,则要在主表中的引用属性上增加Required关键字,如: public class Destination { public int DestinationId { get; set; } public string Name { get; set; } ...

weixin_34234829的博客 118

【EntityFramework CodeFirst 轻松上手】(五) 示例:使用 CodeFirst 数据会话和实体类

1、示例:初始化 CodeFirst 数据会话实例 代码如下: 2、示例:新建 CodeFirst 实体类实例 3、示例:查询 CodeFirst

itisauto2008的专栏 246

Entity Framework Code First级联删除(转)

使用Data Annotations: 如果我们要到一对主从表增加级联删除,则要在主表中的引用属性上增加Required关键字,如: public class Destination { public int DestinationId { get; set; } public string Name { get; set;...

weixin_30588907的博客 209

EF CodeFirst 关系与导航属性

 实体框架关系与导航属性 http://msdn.microsoft.com/zh-cn/data/jj713564 EF Code First 学习笔记关系 - Gyoung - 博客园 http://www.cnblogs.com/Gyoung/archive/2013/01/22/2869782.html Entity Framwork CodeFirst 学习

丰达在线的专栏 2978

EF-CodeFirst-3搞事

EF-CodeFirst-3搞事 本文学习旺杰兄的CodeFirst系列教程而写。尽量摆脱之前的影子写出自己的理解 表间关系、级联删除 简单玩法已经走通了,但是我就是想搞点事出来。今天来搞搞表间关系和级联删除 表间关系 毫无疑问在设计表的时候,对于两张有关联的表,我们要做一对一或一对多的外键关系。这样在使用EF的时候可以轻松的使用导航属性不说,...

weixin_30332705的博客 81
上一篇: Ajax asp.net 导入Excel
下一篇: 软件包 javax.servlet 不存在
mx5721
博客等级 码龄17年 24粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值