为新表生成迁移
本文关键字:迁移 新表生 | 更新日期: 2023-09-27 18:28:43
我刚刚创建了一个带有一些数据库结构的模型,我想创建
namespace Ability.Models
{
public class Skill
{
[key]
public int ID { get; set; }
public string SkillName { get; set; }
public virtual List<Teacher> Teachers { get; set; }
}
public class Teacher
{
[key]
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Campus { get; set; }
public virtual List<Skill> Skills { get; set; }
}
public partial class AbilityDbContext : DbContext
{
public AbilityDbContext()
: base("name= DefaultConnection")
{
}
public virtual DbSet<Teacher> Teachers { get; set; }
public virtual DbSet<Skill> Skills { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Teacher>()
.HasMany(s => s.Skills)
.WithMany(c => c.Teachers);
base.OnModelCreating(modelBuilder);
}
}
}
但是,我不知道如何为这些新表生成迁移。我以为当我尝试更新数据库时,它会给我一条消息,这样我就可以使用添加迁移,但它只是说
没有挂起的显式迁移。
因此,我的问题是,我如何让Entity框架为我完成工作并创建正确的迁移?
从visual studio的Tools
菜单项下在包管理器控制台中运行以下命令,以便进行迁移
enable-migrations
add-migration AddTeacher
add-migration AddSkill
update-database
此外,如果这些实体是新添加的,那么您需要使用Table
属性(如)来装饰它们
[System.ComponentModel.DataAnnotations.Schema.Table("Skills")]
public class Skill
{
[key]
public int ID { get; set; }
public string SkillName { get; set; }
public virtual List<Teacher> Teachers { get; set; }
}
[System.ComponentModel.DataAnnotations.Schema.Table("Teachers")]
public class Teacher
{
[key]
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Campus { get; set; }
public virtual List<Skill> Skills { get; set; }
}