6

我在我的 Windows 应用程序中使用了 SQL Server CE 4.0,并使用实体框架来创建它的模型。

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

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

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

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

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

错误 = 无效的元源 ....

因为默认构造函数使用它

我该如何处理?

4

2 回答 2

2

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

public partial class MyEntitiesModel {
    public MyEntitiesModel(string connectionString) : base(connectionString) { }
}
于 2012-09-30T12:58:02.367 回答
1

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

System.Data.Entity DbContext 示例

Context = new BosMasterEntities(nameOrConnectionString: nameOrConnectionString);

您可以同时连接到多个数据库。

于 2012-10-12T13:49:30.043 回答