我試圖動態提供數據庫憑證給我的EF模型。以前的方法在使用Database First時起作用。有幾個類似的SO問題,但似乎沒有解決這個問題。我在這裏錯過了什麼?EF代碼優先關鍵字不支持:'提供者'
private const string ProviderName = "System.Data.SqlClient";
var SqlConnectionStringBuilder = new SqlConnectionStringBuilder {
DataSource = this.ServerName,
InitialCatalog = this.DatabaseName,
IntegratedSecurity = true
};
var EntityConnectionStringBuilder = new EntityConnectionStringBuilder {
Provider = ProviderName,
ProviderConnectionString = SqlConnectionStringBuilder.ToString()
};
using(var db = new AuditingContext(EntityConnectionStringBuilder.ToString()))
{
var session = new Session() {
};
db.Sessions.Add(session);
//ArgumentException occurs here
//Keyword not supported: 'provider'.
}
的的DbContext
public class AuditingContext: DbContext {
public DbSet <Session> Sessions { get; set; }
public DbSet <Cause> Causes { get; set; }
public AuditingContext(string connectionStringName): base(connectionStringName) {}
}
連接字符串
provider=System.Data.SqlClient;provider connection string=\"Data Source=localhost;Initial Catalog=TEST_DATABASE;Integrated Security=True\"
我不認爲EF5 +的DbContext確實期望一個實體連接字符串,而是一個普通的連接字符串。 – DevilSuichiro
就這麼簡單。非常感謝@DevilSuichiro。 –