写该博客只是为了给自己做个笔记,以防后来会忘记
当时的情况是:我有六张表,然后我就建了六个继承DbContext的类,然后分别进行数据迁移,结果发现每次迁移都会覆盖原先的表
结果是只能迁移一个表,其实只需要建一个继承DbContext的类就可以了,然后对这一个类进行数据迁移
原代码是:
namespace Store.Models
UserContext:Dbcontext{
public UserContext:() : base("name=StoreConnectionString") { }
public DbSet<User> dbUser { get; set; }
}
[Table("tb_user")]
public User{
.........
}
namespace Store.Models
GoodsContext:Dbcontext{
public GoodsContext:() : base("name=StoreConnectionString") { }
public DbSet<Goods> dbGoods { get; set; }
}
[Table("tb_goods")]
public Goods{
.........
}
namespace Store.Models
OrderContext:Dbcontext{
public OrderContext:() : base("name=StoreConnectionString") { }
public DbSet<Order> dbOrder{ get; set; }
}
[Table("tb_order")]
public Order{
.........
}
其他三个类如上一样
修改后的正确代码是
namespace Store.Models{
public class EntityDbContext : DbContext
{
public EntityDbContext() : base("name=StoreConnectionString") { }
public DbSet<User> dbUser { get; set; }
public DbSet<Goods> dbGoods { get; set; }
public DbSet<Reply> dbReply { get; set; }
public DbSet<Store> dbStore { get; set; }
public DbSet<Order> dbOrder { get; set; }
public DbSet<Comment> dbComment { get; set; }
}
}
namespace Store.Models
{
[Table("tb_user")]
public class User
{
.........
}
}
namespace Store.Models
{
[Table("tb_order")]
public class Order
{
.........
}
}
其他四个model省略然后对EntityDbContext 进行数据迁移就可以了
命令如下
Enable-Migrations -ContextTypeName Store.Models.EntityDbContext
updata-database -verbose