没有外键约束的实体框架导航属性

时间:2014-09-17 08:23:12

标签: entity-framework ef-code-first ef-migrations navigation-properties ef-fluent-api

我有一个代码第一个EF模型,其中包含一个简单的(PartDetails)到多个(部分)关系。

当系统处于脱机状态时,查找(PartDetails)表将被外部作业清除并重新填充,违反约束。

modelBuilder.Entity<Part>().HasOptional(e => e.PartDetails)
                           .WithMany()
                           .HasForeignKey(k => k.PartDetailsId);

我尝试过.Map和其他变体,但都创建了数据库约束。

如何使用fluent API阻止EF创建DB FK约束?

我知道这可能不是最好的架构方法,但我坚持使用它。如果我找不到使用Fluent API执行此操作的解决方案,我将手动删除迁移脚本中的约束,或者在清除作业期间删除并重新添加约束。

1 个答案:

答案 0 :(得分:0)

您可以使用Sql("DROP CONSTRAINT...")手动删除迁移脚本中的约束。

但更好的架构方法是在清除作业期间删除并重新添加约束。 这听起来像清除工作是问题的真正所在。约束非常重要。