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;
}
}
助けてくれてありがとう。