“启用迁移”命令更改了一些内容
本文关键字:迁移 启用 启用迁移 命令 | 更新日期: 2023-09-27 18:26:44
在谷歌上搜索这个问题,我已经尝试了所有问题的答案,没有任何更改。
我有一个小型MVC电子商务应用程序,我正在为我的公司构建。它分为两个项目:Domain和WebUI。WebUI显然依赖于Domain,我的构建顺序反映了这一点。我已经检查了两个项目的目标框架,它们匹配(4.5),我添加了EF 5.0。
在构建了基本的产品展示/目录和购物车代码后,我想实现用户,这样我就可以构建订单/商店功能。
到目前为止一切都很顺利。
我运行"启用迁移",这样我就可以编写自己的成员身份/用户代码,并使用我设置的数据库,这样未来的上下文更改就可以针对我的数据库而不是defaultOConnection。
Enable Migrations插入了Migrations文件夹和Configuration类。运行时未产生任何错误。"正在检查上下文目标和现有数据库…为项目*.WebUI启用了代码优先迁移。"
当我在运行Enable-Migrations后尝试生成时,我收到了多个错误,指出Domain项目(我的产品类)的命名空间"System.Web"中不存在类型或命名空间"Mvc",还有一个错误"无法解析引用"。找不到程序集"System.Web.VC,版本4.0.0.0…"。请检查以确保磁盘上存在该程序集。。。"当然还有一个来自WebUI的错误,它找不到Domain.dll(因为Domain.dll无法构建)。
运行enable迁移是如何导致这种情况的?
如何解决此问题?dll在磁盘上,就在属性所说的位置,包含引用,本地副本=true。。。。
我真的弄不明白这个。。。。
奇怪的是,我两天前在我们的一台机器上遇到了这个错误,唯一的区别是我们运行的是EF 6.1.1。我使用ReSharper检查域项目中是否没有使用System.Web.Mvc,并删除了引用。我不知道它是怎么到达那里的。
我们可能几年前就在这个代码库上运行了enable迁移,所以我们的问题似乎不太可能是由它引起的。
就你而言,在你的域代码中引用System.Web.Mvc真的没有太多理由,所以也许你可以考虑将依赖于该DLL的任何代码移动到你的Web项目中,如果它不能完全删除,那么删除DLL引用本身?
我知道这并不能解释为什么它不起作用。这可能与app.config文件中的程序集重定向有关。也许它正在重定向到v5,不是吗?