首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置启动项目以更新已发布的ASP.NET5 \ MVC6项目中的数据库?

如何设置启动项目以更新已发布的ASP.NET5 \ MVC6项目中的数据库?
EN

Stack Overflow用户
提问于 2015-10-13 12:13:45
回答 1查看 1.1K关注 0票数 1

在一个EF7项目中有两个MVC6 (beta-7) db上下文。其中第一个(我们称之为StartupContext)是在启动项目(MyProject.Startup)中。第二个(让我们称之为DataContext)是在一个单独的程序集(MyProject.Data)中。

project.json文件的MyProject.StartupMyProject.Data中有一个命令

代码语言:javascript
复制
"dependencies": {
  "EntityFramework.SqlServer": "7.0.0-beta7",
  "EntityFramework.Commands": "7.0.0-beta7",
  ...
}

"commands": {
  "ef": "EntityFramework.Commands"
  ...
}

我可以将它用于数据库更新,如:

  • 为了更新StartupContext,我从启动文件夹中运行ef命令: dnx ef database update
  • 为了更新DataContext,我从MyProject.Data项目的一个文件夹运行ef命令: dnx ef database update -c DataContext -s MyProject.Startup

它工作得很好,但只从来源(从未发表的项目)。在更新发布的项目的DataContext时,我得到了这样的例外:

System.IO.FileNotFoundException:无法加载文件或程序集"MyProject.Data“或其依赖项之一。

我尝试过各种方法:

代码语言:javascript
复制
dnx ef database update -c DataContext -s MyProject.Startup
dnx ef database update -c DataContext -s C:\Published\approot\packages\MyProject.Startup
dnx ef database update -c DataContext -s C:\Published\approot\packages\MyProject.Startup\1.0.0\root\
dnx ef database update -c DataContext -s C:\Published\approot\packages\MyProject.Startup\1.0.0\lib\MyProject.Startup.dll
dnx ef database update -c DataContext -s %~dp0approot\packages\MyProject.Startup
dnx ef database update -c DataContext -s %~dp0approot\packages\MyProject.Startup\1.0.0\root\

我还试图将MyProject.Startup.dll复制到一个带有MyProject.Data的文件夹中,但没有成功。

其他人也有类似的问题吗?

如何更新数据库并从已发布的项目中创建迁移?

EN

回答 1

Stack Overflow用户

发布于 2015-10-16 18:39:53

这是EF7-Beta 7中的一个bug,应该在即将发布的EF RC1版本中修复。

如果您需要(在很大程度上是这样)这个功能之前,您可以使用每晚构建的EF。(警告:夜间建筑有很多不稳定性。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33102426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档