我不小心删除了我的数据库的几个表,并设法恢复它的某些部分。
但似乎在添加新迁移并运行update-database命令后未创建外键。
缺少缺少外键约束的代码:
modelBuilder.Entity<File.File>()
.HasRequired(f => f.FileType)
.WithMany()
.WillCascadeOnDelete(false);
modelBuilder.Entity<File.FileType>()
.HasMany(a => a.ApplicationUsers)
.WithMany(a => a.FileTypes);
有没有办法可以使用代码优先重新创建密钥?
PS:我试图运行'update-database -force',但它没有解决我的问题。
PS2:这是我的测试数据库,如果你想知道,但我还是想学习如何解决这个问题。
答案 0 :(得分:0)
进入一对多关系你需要添加:
.HasForeignKey(f => f.Id_Representation_In_Foreign_Table)
多对多的关系:
.HasMany(i => i.ApplicationUsers)
.WithMany(i => i.FileTypes)
.Map(m => // use map if you're overwriting convention, otherwise sql will create name of the columns automatically
{
m.ToTable("FileTypesAndSmth");
m.MapLeftKey("ApplicationUserId");
m.MapRightKey("FileTypeId");
});