0

移行で Code First EF を使用する単純なアプリケーションの例を作成しています。defaultConnectionFactory を使用して、データベースがまだ存在しない場合にデータベースを作成するコンテキスト オブジェクトがあります。データベース名を制御するために、これらの設定をどのように上書きできるのか疑問に思っていました。defaultConnectionFactory をコメントアウトして接続文字列を配置しても、同じ古いデータベース名が取得されます。なんで?

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>

  <!--<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  </entityFramework>-->

  <connectionStrings>
    <add name="MigrationsDemoConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MigrationsDemo;Integrated Security=true" providerName="System.Data.SqlClient" />
  </connectionStrings>  

</configuration>
4

1 に答える 1

0

データベース名は接続文字列にあります。あなたのコンテキストには、「MigrationsDemoConnection」を引数として取るコンストラクターがあると思います。そのため、データベース名「MigrationsDemo」を使用します。接続文字列は、データベース名を変更する場所です。

完全な接続文字列を引数として使用してコンテキストを構築することもできます。構成ファイルから接続文字列を取得し、そのデータベース名を変更できます。できればSqlConnectionStringBuilder.

于 2013-02-05T18:44:32.973 に答える