我正在处理使用EntityFramework的C#应用程序和从DbContext派生的对象。 我需要在创建MyDbContext对象的新实例时以编程方式设置连接字符串。为此,我使用以下代码:
public MyDbContext(string myString)
{
this.Database.Connection.ConnectionString = myString
}
myString = "Server=MYSERVER\\SQLEXPRESS; Database=MyDB; User ID=user; Password=pass;";
or
myString = "Data Source=|DataDirectory|\\AirecCalcDatabase.sdf";
两个字符串的数据库提供程序不同。第一个是SQLExpress,第二个是SQLCompact。 如果我尝试使用第一个字符串运行此代码,我会从连接字符串中获取ArgumentException。例如“关键字无效:服务器”,但“关键字无效:数据库”。使用不带参数的DbContext时,连接字符串可以正常工作,即从app.config
读取字符串答案 0 :(得分:2)
当您想要使用CE时,您可能需要将DefaultConnectionFactory更改为指向SQL CE:
Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");
有关详细信息,请参阅this blog post