既存のアプリケーションをapp.configなしで作成しようとしています(非常に特定の環境のために必要です)。問題は、EntityFramework 6がSQL Serverと連携することに大きく依存していることです。EntityFramework 6データベースベースの接続文字列のコードベースの設定
私はcode-based configurationを利用しようとしていますが、私の設定で正しい接続文字列を提供する方法はわかりません。
私は、設定クラスを作りました。そして、
public class MyConfiguration : DbConfiguration
{
public MyConfiguration()
{
SetDefaultConnectionFactory(new MyConnectionFactory());
SetProviderServices("System.Data.SqlClient", System.Data.Entity.SqlServer.SqlProviderServices.Instance);
}
}
私DbContext(BDからautomaticaly EFによって生成される)にそれを提供する:
:カスタム接続ファクトリで[DbConfigurationType(typeof(MyConfiguration))]
public partial class TestModelEntities
{
}
public class MyConnectionFactory : IDbConnectionFactory
{
public DbConnection CreateConnection(string nameOrConnectionString)
{
var newConnStringBuilder = new SqlConnectionStringBuilder
{
UserID = "user",
Password = "pass",
InitialCatalog = "databaseName",
DataSource = "serverName"
};
var entityConnectionBuilder = new EntityConnectionStringBuilder
{
Provider = "System.Data.SqlClient",
ProviderConnectionString = newConnStringBuilder.ToString(),
Metadata = @"res://*/TestModel.csdl|
res://*/TestModel.ssdl|
res://*/TestModel.msl"
};
var newDbConnect = new EntityConnection(entityConnectionBuilder.ToString());
return newDbConnect;
}
}
ただし、私がそれをテストしようとしているとき、私はまだUnintentionalCodeFirstException
を得ています。どうして?私は何が欠けていますか?
Heh。驚くほど簡単な解決策。ありがとう! – user3223738