为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以为外键配置 EF core“ON UPDATE”行为?

是否可以为外键配置 EF core“ON UPDATE”行为?

C#
慕尼黑的夜晚无繁华 2023-08-20 09:28:36
在子实体上设置外键时,如下所示:modelBuilder.Entity<Child>()    .HasOne(c => c.Parent)    .WithMany(p => p.Children)    .HasForeignKey(c => c.ParentId)    .OnDelete(DeleteBehavior.Cascade);我能够配置约束的“删除时”行为。结果迁移看起来像这样:migrationBuilder.CreateTable(    name: "Child",    columns: table => new    {        Id = table.Column<Guid>(nullable: false),        ParentId = table.Column<Guid>(nullable: false)    },    constraints: table =>    {        table.PrimaryKey("PK_Child", x => x.Id);        table.ForeignKey(            name: "FK_Child_Parent_ParentId",            column: x => x.ParentId,            principalTable: "Parent",            principalColumn: "Id",            onDelete: ReferentialAction.Cascade);                        });在生成的迁移中,我可以直接编辑 onUpdate 行为,如方法签名中所示:public virtual OperationBuilder<AddForeignKeyOperation> ForeignKey(      [NotNull] string name,      [NotNull] Expression<Func<TColumns, object>> column,      [NotNull] string principalTable,      [NotNull] string principalColumn,      [CanBeNull] string principalSchema = null,      ReferentialAction onUpdate = ReferentialAction.NoAction,      ReferentialAction onDelete = ReferentialAction.NoAction);但我无法找到通过流畅的 API 或属性来做到这一点的方法。是否可以为外键配置 EF Core“更新时”行为?
查看完整描述

1 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

今天的 Fluent API 不可能做到这一点。

我们(EF 团队)根据 SQL 规范设计了 MigrationBuilder API。这使您可以手动执行许多目前在 EF Core 中没有意义的事情。但这可能会随着时间的推移而改变。例如,从 3.0 开始,实体类型可以映射到没有主键的表,迁移将创建它们。从 1.0 开始,您就可以手动创建没有主键的表。

查看完整回答
反对 回复 2023-08-20
  • 1 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信