如何在一处维护 EF 连接字符串?
Posted
技术标签:
【中文标题】如何在一处维护 EF 连接字符串?【英文标题】:how to maintian the EF connection string at one place? 【发布时间】:2017-07-24 05:01:25 【问题描述】:我的项目解决方案中有以下内容,我试图在一个地方维护实体框架的数据库连接,这样如果我必须将数据库切换到不同的供应商(如 mysql 到 MSSQL,反之亦然),我可以只需在一个地方更改连接名称,不必在所有地方都更改...我尝试了以下结构但遇到错误,如何解决?
项目#1
Dashboard.EntityFramework
-->bitDbConnection.cs
using
namespace Dashboard.EntityFramework
public class bitDbConnection
BitDatabaseEntities bitDB = new BitDatabaseEntities();
项目#2
Dashboard.Repository
-->Repository.cs
using Dashboard.EntityFramework
when I try use to bitDB variable I can the below error
错误:-
The name bitDB does not exist in current context
【问题讨论】:
【参考方案1】:这可能不是你想要的,但为了让你的代码工作,这样写:
namespace Dashboard.EntityFramework
public class bitDbConnection
public BitDatabaseEntities bitDB = new BitDatabaseEntities();
using Dashboard.EntityFramework
public class Repository
public void DoSomething()
var bitDB = new bitDbConnection().bitDB;
所以,先将 bitDB 字段公开,然后再使用它...
在 cmets 中编辑问题:
public class Repository
private BitDatabaseEntities bitDB = new BitDatabaseEntities().bitDB;
public void DoSomething()
var x = bitDB.ToString();
【讨论】:
M - 有没有办法在函数外和类内声明var bitDB = new bitDbConnection().bitDB;
class Repository
Marko - 有没有办法在函数外和类内声明var bitDB
,以便类内的任何函数都可以使用它..
Marko M - 使用编辑后的答案,连接字符串不再在一个地方,对吗?如果我定义一个新类,我必须为每个类定义 bitDB 对吗?为什么我们不能维护一个文件中的连接,然后在类范围内定义它?C#中有什么东西可以防止这种情况发生吗?
你不够具体,所以我无法提供足够的答案。即使我的第一个答案只是“当前上下文中不存在名称 bitDB”的解决方案,但这些东西与连接字符串无关......
我在许多项目中工作,其中连接字符串在配置文件中定义并在其他地方使用没有问题,但正如我所说,你的问题太宽泛了。尝试添加更好的示例或您的问题,它可能会得到解决。祝你好运。以上是关于如何在一处维护 EF 连接字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 EF6 中将连接字符串传递给 DataContext
如何在连接字符串中为 EF Code First 配置 ProviderManifestToken