Entity Framework Core 2.1,添加种子数据

Entity Framework Core 2.1,添加种子数据

EFCore 2.1出来有一段时间了,里面的新功能还没怎么用,今天研究下如何使用EF Core 2.1添加种子数据。

里面还涉及到其它的Model,不过本文用不到,就不贴了。

这里我添加了一个省份的种子数据,并写上了主键Id的值。

生成的SQL脚本

迁移到数据库

结果是成功的。

虽然曾经存在过Id为1的数据(然后被删除了),但是Id为1的种子数据仍然可以插入进去。

然后Add-Migration,看看会发生什么:

报错了,所以主键值是必填的。

更改现有的种子数据

执行Update-Database时的SQL语句:

可以看到是根据主键对数据库里面的数据进行Update动作。

如果我把HasData里种子数据的主键值修改了

我把四川的主键从2改为3。

先删除了之前添加的Id为2的种子数据,然后把插入了一笔Id为3的数据。

也是先Delete,再Insert。

种子数据为什么要指定主键的值?

然后Add-Migration

这样做不行。我必须单独添加City的种子数据,并且设置好外键。

这次Add-Migration没有报错,迁移也成功了,看一下最后的数据:

OK

然后就可以这样添加种子数据:

迁移后的数据:

结果仍然如预期一样。

看下数据:

貌似没问题。

删除原来的数据,再插入一个新的数据。。

所以最好的办法是把Guid的值放在一个变量里:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181029A0M1OP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券