我在模型级定义外键关系,如下所示:
public class CMShoppingEntities : DbContext
{
public DbSet<Category> Categories { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Category>()
.HasOptional(c => c.parentCategory)
.WithMany(c => c.ChildCategories)
.HasForeignKey(p => p.ParentID);
base.OnModelCreating(modelBuilder);
}
}
那么为什么我们需要或者是否需要在数据库/表级定义外键关系..?
答案 0 :(得分:0)
此映射表示数据库中存在FK关系= EF认为您的数据库使用参照完整性。如果您的数据库不使用它,映射和您的应用程序仍然会工作,直到某人将数据存储在您的数据库中,这将违反此预期约束。然后,由于数据不一致,您的应用程序将随机停止工作。
因此,如果您希望模型中的FK关系也在数据库中使用它。
这个问题还有一些问题: