Asp.net 如何为实体框架数据库使用dbDacFx Web部署提供程序?

Asp.net 如何为实体框架数据库使用dbDacFx Web部署提供程序?,asp.net,entity-framework,database-schema,visual-studio-2012,webdeploy,Asp.net,Entity Framework,Database Schema,Visual Studio 2012,Webdeploy,我正在Visual Studio 2012下编写一个ASP.NET Web表单应用程序。我有一个实体框架代码第一个上下文类,它将我的C#对象与数据库链接起来。但是这个上下文是使用数据库优先的方法自动生成的。我在数据库中使用了独特的索引和用户聚合等特性,而EF5中模型优先方法的代码优先不支持这些特性 我正在使用按钮部署我的项目。我的数据库被识别为EF数据库,我看到了“执行代码优先迁移”复选框,但它是灰色的: 没关系,因为我使用数据库优先的方法。但是我想使用“更新数据库”选项,它出现在我的默认连接

我正在Visual Studio 2012下编写一个ASP.NET Web表单应用程序。我有一个实体框架代码第一个上下文类,它将我的C#对象与数据库链接起来。但是这个上下文是使用数据库优先的方法自动生成的。我在数据库中使用了独特的索引和用户聚合等特性,而EF5中模型优先方法的代码优先不支持这些特性

我正在使用按钮部署我的项目。我的数据库被识别为EF数据库,我看到了“执行代码优先迁移”复选框,但它是灰色的:

没关系,因为我使用数据库优先的方法。但是我想使用“更新数据库”选项,它出现在我的默认连接中,只是用来同步数据库模式。如“dbDacFx Web部署提供程序”部分所述。怎么做


如果我理解正确,我始终可以为此手动使用Microsoft SQL Management Studio。在这种情况下如何手动执行此操作?

您可以在Web.config文件的ConnectionString元素中创建另一个具有不同名称的连接字符串条目。它将显示在带有dbDacFx选项的“发布”对话框中

该场景类似于在不使用迁移的情况下首先部署代码——请参见

Tom(tdykstra)是正确的。您需要在web.config中创建一个新的连接字符串,以使用dbDacFx发布模型,而不是使用EF CF迁移

“Web发布”对话框支持两种类型的数据库发布机制:

  • EF CF通过迁移发布
  • 增量数据库模式发布通过
  • 如果连接字符串与EF CF上下文关联,则在“发布”对话框上,它将始终显示“执行代码优先迁移”复选框。我们希望故事简单易懂,因此我们没有为此创建任何配置选项。对于那些不想使用“发布”对话框的高级用户,可以创建一个包含正确内容的发布配置文件(.pubxml)文件,并从命令行将其用于发布。为了使VS publish对话框支持此场景,您必须向web.config添加连接字符串


    在您的例子中,您有一个连接字符串DatabaseEntities,由EF CF上下文使用。您应该在DatabaseEntities publish的
    web.config
    中创建一个新的连接字符串,该字符串仅在发布期间使用。您需要确保要发布到的连接字符串位于DatabaseEntities和DatabaseEntities publish的文本框中。

    感谢您的澄清。请看一下我的相关问题:我无法获得web发布包来部署数据库。我在PublishSQL选项卡中设置了它,但它根本没有部署。我首先在Visual Studio 2013中使用数据库。第一次使用“发布”对话框时,它显示正在部署数据库。现在,当我打开“发布”对话框时,数据库从未包含在发布中。