11

C# アプリケーションで Entity Framework 6 を使用していますが、完全に動作します。モデルを作成すると、必要な構成がすべて含まれた app.config が生成されます。今は app.config に何かを入れるのが好きではないので、接続文字列ビルダーを使用しています。これを除いて、app.configファイルからすべてを削除することに成功しました:

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
</entityFramework>

これを外すと動かなくなります。では、その構成を C# コードに変換するにはどうすればよいでしょうか? どうすればいいですか?コードベースの構成 ( http://msdn.microsoft.com/en-us/data/jj680699 ) を調べましたが、役に立ちませんでした。

接続文字列を作成する部分クラスは次のようになります。

public partial class LogEntities
    {
        public LogEntities(string serverName)
            : base(GetConnectionString(serverName))
        {
        }

        public static string GetConnectionString(string serverName)
        {
            // Specify the provider name, server and database.
            const string databaseName = "_LOG";

            // Initialize the connection string builder for the underlying provider.
            SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder
            {
                DataSource = serverName,
                InitialCatalog = databaseName,
                IntegratedSecurity = true,
                MultipleActiveResultSets = true
            };

            // Initialize the EntityConnectionStringBuilder.
            System.Data.EntityClient.EntityConnectionStringBuilder entityBuilder = new System.Data.EntityClient.EntityConnectionStringBuilder();
            entityBuilder.Provider = "System.Data.SqlClient";

            // Set the provider-specific connection string.
            entityBuilder.ProviderConnectionString = sqlBuilder.ToString();

            // Set the Metadata location.
            entityBuilder.Metadata = @"res://*/myproject.LogModel.csdl|res://*/myproject.LogModel.ssdl|res://*/myproject.LogModel.msl";

            return entityBuilder.ConnectionString;
        }
    }

助けてくれてありがとう。

4

1 に答える 1

14

EF6 では、コード ベース構成を使用できます。詳細については、この記事をご覧ください。デフォルトの接続ファクトリを設定する方法を示します (SetDefaultConnectionFactoryメソッドを使用)。プロバイダーを設定するには、SetProviderServicesメソッドを使用します。

于 2013-11-06T22:51:51.167 に答える