1
ahjiangwu 2019-08-09 16:48:06 +08:00 1
如果__MigrationHistory 表的最后一条记录和 Migrations 目录最新的文件名一致的话,还是报错,那最好贴一下报错的内容,不然不太好定位问题
|
2
yeqiu OP @ahjiangwu #1
支持“ xxx ”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库( http://go.microsoft.com/fwlink/?LinkId=238269)。” |
3
SilencerL 2019-08-09 17:01:15 +08:00 1
试一下删掉最近一次成功的迁移记录(cs 文件和数据库的那一条记录)
然后重新 Add-Migration sth. && Update-Database |
5
ahjiangwu 2019-08-09 17:12:51 +08:00
让你贴个报错信息,不明白你贴个小白文档链接是几个意思
|
7
SilencerL 2019-08-09 17:14:34 +08:00
|
9
ahjiangwu 2019-08-09 17:21:01 +08:00
|
10
yeqiu OP @SilencerL #7
我试着在 model 中增加了一个属性,生成的迁移文件不是空的,包括后续的迁移也成功执行,数据库中也出现了想要的字段。 然后我运行 mvc 项目,问题依旧。 崩溃.jpg 我比较在意我上面提到的第二点 我还有一个 api 项目也引用了这个 base 类库,这个项目运行良好。 我完全无法理解这种事情 |
12
forgottencoast 2020-03-03 11:57:34 +08:00
@yeqiu 后来解决了吗?
|
13
yeqiu OP @forgottencoast #12
@SilencerL #7 现在才想起来给回复后续,真的是不好意思啊。 原因已经查到了,当同时使用 EntityFramework ( 6.2 )和 Newtonsoft.json 这两个包时,Newtonsoft.json 这个包的版本必须大于 12 ,否则就会报这个错误。 我使用的 EF 版本是 6.2 ,我没有测试其他的版本是否有同样的问题。 具体原因的话,个人猜测,很有可能是 EF 和 Newtonsoft.json 都用静态扩展的方式扩展了同一个类的同一个方法,而这个方法在 Newtonsoft.json 12 版本之前和之后的实现是不一样的,进而导致 MigrationHistory 表的 model 字段与项目中的 model 序列化之后的内容无法匹配,他就一直觉得你需要迁移。 |