应用程序不应在app.config文件中查找连接字符串

时间:2013-05-14 10:49:13

标签: c# entity-framework

我的应用程序基于实体框架5,连接字符串是动态生成的并在应用程序中使用。这工作正常。唯一的问题是如果我没有在app.config文件中放置连接字符串,那么它会给出错误。 app.config文件应包含连接字符串。有什么办法,我可以让我的进程不在app.config文件中找到连接字符串。解决方法是我可以放置虚拟连接字符串,但我希望它不应该在app.config文件中查找连接字符串。 请帮忙。 !

提前致谢..

2 个答案:

答案 0 :(得分:2)

应用程序不会查看连接字符串,而是使用它来执行该操作的库。幸运的是,你的问题被标记为实体框架,所以我想你在某处只是实例化一个new DbContext()。如果您可以显示错误发生在哪行代码上,那就太好了。

当您在网上搜索“实体框架dbcontext传递连接字符串”时,您会发现this question链接到某处的manual

public DbContext(string nameOrConnectionString)

因此,在实例化实体框架上下文(而不是其名称时)时,只需将有效的连接字符串提供给构造函数,因为这样可以使其在应用程序的配置中查看。

答案 1 :(得分:0)

感谢CodeCaster的回复。

我这样做。我创建了一个包含静态方法的类,在每个DAL类中我只调用此方法,并使用传递的连接字符串创建上下文实例。

public static myDBEntities getDBContext(String connectionString) {   

        myDBEntities DB = new myDBEntities();

        DB.Database.Connection.ConnectionString = connectionString;

        return DB;
    }

我的应用程序运行正常。没有问题。我的意思是它需要动态分配的连接字符串,但唯一的问题是如果我从app.config文件中删除连接字符串,那么它给出了我在app.config中期望连接字符串的错误。那么是否存在任何设置或某些东西,这可能导致EDMX无法在app.config中找到连接字符串。

我们将不胜感激。 :)