当您在 EF 代码优先中设置一:多关系时,您可以选择它是否应该在删除时级联,如下所示:
modelBuilder.Entity<Assessment>()
.HasRequired(asmt => asmt.CreatedByUser)
.WithMany(usr => usr.Assessments)
.HasForeignKey(asmt => asmt.CreatedByUserId)
.WillCascadeOnDelete(true);
这将转换为 SQLON DELETE CASCADE
外键定义的一部分,即。
ALTER TABLE [dbo].[Assessment] WITH CHECK ADD CONSTRAINT [FK_dbo.Assessment_dbo.User_CreatedById] FOREIGN KEY([CreatedById])
REFERENCES [dbo].[User] ([UserId])
ON DELETE CASCADE
GO
然而,Fluent API中似乎没有类似的方法可以让你控制ON UPDATE CASCADE
, IE。就像是.WillCascadeOnUpdate()
。为什么不?
实体框架通过导航属性处理关系,因此ON UPDATE CASCADE
所有此类关系都已准备就绪。
嗯,另一方面,我不确定您是否可以直接从实体框架更改实体的主键。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)