Bro*_*ato 6 asp.net asp.net-mvc visual-studio ef-migrations visual-studio-2012
我有一个VS2012 MVC4解决方案(EF5).编码时,我使用安装在同一台机器上的SQL Express的个人计算机.每次我需要向公司发布更新时,我都会创建一个包(.zip),然后在公司的IIS上导入此包(不能从我的开发计算机访问).每次我在公司的IIS服务器上发布我的解决方案时,我都会重新创建整个数据库.那是过去的......
现在,我改变了我的解决方案并使用Code First Migrations.当需要(实体已更改)时,由于"程序包管理器控制台"(Update-Database),我更新了本地数据库.
我的问题:如何在公司的IIS上更新数据库?
我在解释页面(http://msdn.microsoft.com/en-us/library/dd465337.aspx)上看到了下面的截图,但是当我在VS2012上打开发布向导时,我没有相同的屏幕.
以下是文档页面上显示的屏幕:

以下是我的屏幕:

任何帮助是极大的赞赏.
您可以通过编辑Properties\YourProject - WebDeploy.pubxml查找PublishDatabaseSettings来启用该复选框
<PublishDatabaseSettings>
<Objects xmlns="">
<ObjectGroup Name="Namespace.Models.YourDBClass" Order="1" Enabled="True">
<Destination Path="your-connection-string-goes-here" />
<Object Type="DbCodeFirst">
<Source Path="DBMigration" DbContext="Namespace.Models.YourDBClass, AssamblyName" MigrationConfiguration="Namespace.Migrations.Configuration, Assambly" Origin="Convention" />
</Object>
</ObjectGroup>
</Objects>
</PublishDatabaseSettings>
Run Code Online (Sandbox Code Playgroud)
通过继承DbContext的类更改Namespace.Models.YourDBClass,更改Namespace.Migratins.Configuration以适合您的迁移配置命名空间和Assambly与您的Assambly名称.
保存并打开您将拥有该复选框的发布向导.
希望有所帮助
我也看到过这种情况.我不确定部署工具用于识别EF存在的启发式方法,但该选项偶尔出现.
发布工具的功能很容易复制.您可以在web.config文件(或web.config.release中的转换)中指定数据库初始化程序以运行迁移.它看起来像以下(对于转换):
<entityFramework>
<contexts xdt:Transform="Insert">
<context type="PlantonDbContextName, PlantonAssemblyName">
<databaseInitializer
type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[
[PlantonDbContextName, PlantonAssemblyName],
[PlantonConfigurationName, PlantonAssemblyName]
], EntityFramework" />
</context>
</contexts>
</entityFramework>
Run Code Online (Sandbox Code Playgroud)
泛型在配置文件中很难看,但您也可以在代码中设置初始化程序:http://msdn.microsoft.com/en-us/library/hh829293(v = vs.103).aspx
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
8156 次 |
| 最近记录: |