我有一个代码第一个EF模型,其中包含一个简单的(PartDetails)到多个(部分)关系。
当系统处于脱机状态时,查找(PartDetails)表将被外部作业清除并重新填充,违反约束。
modelBuilder.Entity<Part>().HasOptional(e => e.PartDetails)
.WithMany()
.HasForeignKey(k => k.PartDetailsId);
我尝试过.Map和其他变体,但都创建了数据库约束。
如何使用fluent API阻止EF创建DB FK约束?
我知道这可能不是最好的架构方法,但我坚持使用它。如果我找不到使用Fluent API执行此操作的解决方案,我将手动删除迁移脚本中的约束,或者在清除作业期间删除并重新添加约束。
答案 0 :(得分:0)
您可以使用Sql("DROP CONSTRAINT...")
手动删除迁移脚本中的约束。
但更好的架构方法是在清除作业期间删除并重新添加约束。 这听起来像清除工作是问题的真正所在。约束非常重要。