- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当您在 EF 代码优先中设置一个:多个关系时,您可以选择它是否应该像这样在删除时级联:
modelBuilder.Entity<Assessment>()
.HasRequired(asmt => asmt.CreatedByUser)
.WithMany(usr => usr.Assessments)
.HasForeignKey(asmt => asmt.CreatedByUserId)
.WillCascadeOnDelete(true);
这转换为外键定义的 SQL ON 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
的值,即。类似于 .WillCascadeOnUpdate()
。为什么不呢?
最佳答案
Entity Framework 通过导航属性处理关系,因此 ON UPDATE CASCADE
已经为所有此类关系打开。
嗯,另一方面,我不确定您是否可以直接从 Entity Framework 更改实体的主键。
关于c# - 为什么没有更新相当于 WillCascadeOnDelete?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13706286/
当您在 EF 代码优先中设置一个:多个关系时,您可以选择它是否应该像这样在删除时级联: modelBuilder.Entity() .HasRequired(asmt => asmt.Crea
这就是我今天拥有的: modelBuilder.Entity() .HasOptional(p => p.DealDevice) .WithRequired(c => c.User)
例如看这个问题。 Entity Framework (EF) Code First Cascade Delete for One-to-Zero-or-One relationship 我有一个正常的
这是我的情况: public abstract class Article { [key] public Guid Guid { get; set;} public strin
我在这里拔头发。我在这里看到了在删除时关闭级联的解决方案,但我无法实现它。我不知道我在这里做错了什么,但我不断收到以下错误: “System.Data.Entity.ModelConfiguratio
EF Core 中的 .WillCascadeOnDelete(false) 等价于什么? modelBuilder.Entity() .HasMany(e => e.
为什么与配置中定义的 WillCascadeOnDelete(false) 的关系在生成的迁移中始终为真? 这是配置代码 public class PartySuppliesConfiguratio
我目前正在使用启用了迁移的 EF Code First 4.3,但禁用了自动迁移。 我的问题很简单,是否有等效于模型配置的数据注释 .WillCascadeOnDelete(false) 我想装饰我的
我目前正在使用启用了迁移的 EF Code First 4.3,但禁用了自动迁移。 我的问题很简单,是否有等效于模型配置的数据注释 .WillCascadeOnDelete(false) 我想装饰我的
我是一名优秀的程序员,十分优秀!