0

我已经使用 Code First 设置了一个 Web API 2 项目。发布对话框正在检测数据库并允许我使用 Code First 迁移。

然后,我使用此处的步骤添加了第二个数据库连接。

现在,当我发布时,对话框只检测到新数据库,并且没有为原始数据库提供任何选项。

我删除了对我能找到的第二个数据库的所有引用,但发布对话框仍然显示对它的引用(而不是对原始数据库的引用)。我已将当前版本与添加第二个数据库之前的版本进行了比较,并且我的发布配置文件的 pubxml 不同,但 VS 会自动生成不同的部分:

前:

<PublishDatabaseSettings>
  <Objects>
    <ObjectGroup Name="DefaultConnection" Order="1" Enabled="True">
      <Destination Path="" />
      <Object Type="DbCodeFirst">
        <Source Path="DBMigration" DbContext="Project.Models.ApplicationDbContext, Project" MigrationConfiguration="Project.Migrations.Configuration, Project" Origin="Convention" />
      </Object>
    </ObjectGroup>
  </Objects>
</PublishDatabaseSettings>
...
<ItemGroup>
  <MSDeployParameterValue Include="$(DeployParameterPrefix)DefaultConnection-Web.config Connection String">
    <ParameterValue>Data Source=localhost;Initial Catalog=OriginalDB;User ID=user;Password=password</ParameterValue>
  </MSDeployParameterValue>
</ItemGroup>
<ItemGroup>
  <_ConnectionStringsToInsert Include="DefaultConnection" />
</ItemGroup>

后:

<PublishDatabaseSettings>
  <Objects>
    <ObjectGroup Name="NewDatabase" Order="2" Enabled="False" xmlns="">
      <Destination Path="" />
      <Object Type="DbDacFx">
        <PreSource Path="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=newcatalog;Integrated Security=True;Application Name=EntityFramework" includeData="False" />
        <Source Path="$(IntermediateOutputPath)AutoScripts\NewDatabase_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
      </Object>
      <UpdateFrom Type="Web.Config">
        <Source MatchValue="data source=(localdb)\MSSQLLocalDB;initial catalog=newcatalog;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
      </UpdateFrom>
    </ObjectGroup>
  </Objects>
</PublishDatabaseSettings>
...
<ItemGroup>
  <MSDeployParameterValue Include="$(DeployParameterPrefix)NewDatabase-Web.config Connection String" />
</ItemGroup>

我不确定这是从哪里生成的,我将如何让它与两个数据库一起使用,或者失败了,让它回到它与原始数据库一起使用的地步?

4

0 回答 0