繁体   English   中英

使用EF目标启动项目进行代码优先部署?

[英]Code first deployment using EF targetting startup project?

现在,我对问题有了更清晰的了解,现在我重新发布这个问题。 我说的是问题,因为我看不出这种行为有任何逻辑原因。

我有一个包含三个项目的解决方案:

DataLayer项目

BusinessLogicLayer项目

Win Forms(设置为STARTUP项目)

DataLayer项目使用EF 6和Oracle Managed Client。 我发现,尽管enable-migration和add-migration成功地以我的DataLayer项目为目标(通过在Package Manager中的下拉菜单中设置默认项目或使用-project标志),但update-database却没有。 实际上,我必须右键单击DataLayer项目,并告诉Visual Studio将其设置为启动项目。

通过测试,似乎代码优先方法中的update-database正在启动项目中寻找app.config,而不是选择默认项目。

我希望我的项目具有3层架构,将所有与数据库相关的内容和EF保留在DataLayer项目中。 我不需要将DataLayer项目更改为启动项目,而只是为了更新数据库。 这是正常的行为,还是我完全想不到的东西?

旁注:使用VS的社区版,在两个不同的系统上进行了尝试,这些都是新项目并具有相同的行为。

提前致谢!

基于-startupproject标志的提示,我能够找到解决方案。

为了对不是启动项目的项目使用update-database命令,必须在同一调用中同时传递-projectname和-startupproject标志,例如:

update-database -project datalayer -startupproject datalayer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM