.Net MVC EntityFramework 数据迁移笔记

本文介绍了一种在Entity Framework中对多个表进行数据迁移的方法。原本作者为六个表各自创建了独立的DbContext类,导致每次迁移只作用于一个表且会覆盖原有数据。通过将所有表的数据操作整合到一个DbContext类中,可以实现对所有表的有效数据迁移。

写该博客只是为了给自己做个笔记,以防后来会忘记

当时的情况是:我有六张表,然后我就建了六个继承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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值