如何为SQL Server CE使用动态连接字符串?

我在我的Windows应用程序中使用了SQL Server CE 4.0,并使用Entity Framework创建了它的模型。

它工作正常,但我的问题是它没有构造函数来更改连接字符串,默认情况下它从app.config文件中读取连接字符串。

  using (var Context = new MyEntitiesModel(//has no constructor)) { ... } 

我创建了一个动态连接字符串和

  using (var Context = new MyEntitiesModel()) { Context.Database.Connection.ConnectionString = entityConnection.ConnectionString; } 

它通过这种方式工作正常,但如果我删除app.config文件中的另一个连接字符串,它给了我这个。

错误=无效元代….

因为默认构造函数使用它

我该怎么处理?

创建自己的构造函数。 MyEntitiesModel是部分类,您可以添加自己的部分类,并添加接受连接字符串的构造函数。

 public partial class MyEntitiesModel { public MyEntitiesModel(string connectionString) : base(connectionString) { } } 

我正在使用DbContext。 有几个重载构造函数,例如:ObjectContext也有一组类似的构造函数重载。

System.Data.Entity DbContext示例

 Context = new BosMasterEntities(nameOrConnectionString: nameOrConnectionString); 

您可以同时连接到多个Dbs。