技术
Entity Framework Core SQLite provider向已存在的表中添加外键
SQLite本身不支持向已创建的表中添加外键,类似的限制还有很多,比较蛋疼,具体可以参见SQLite Limitations [https://docs.microsoft.com/en-us/ef/core/providers/sqlite/limitations]。 项目中,如果是测试的时候,数据不是很重要的话,最方便的方法就是把已经创建的Migrations包括ModelSnapshot都删掉,重新Add-Migration重建数据库。 对于已经发布的应用,数据库不能删了创建的话,可以“曲线救国”。 假设需要给TableA添加一个需要建立外键的字段ColumnA,为了增加难度,假设TableB中的Column B是TableA的外键。具体操作方法如下: 1. 先在代码中TableA里添加ColumnA(不设置外键),Add-Migration,更新到线上数据库 2. 将本地的数据库改名为database-backup,删除项目中所有Migrations和ModelSnapshot,创建一个RebuildDatabase的Migration,创建全新的数据库,从新数据