1

我正在处理使用 EntityFramework 和从 DbContext 派生的对象的 C# 应用程序。创建 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 读取字符串

4

1 回答 1

2

当您想使用 CE 时,您可能需要将DefaultConnectionFactory更改为指向 SQL CE:

Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");

有关更多信息,请参阅此博客文章

于 2012-09-24T16:07:13.273 回答