【问题标题】:how to maintian the EF connection string at one place?如何在一处维护 EF 连接字符串?
【发布时间】: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

【问题讨论】:

    标签: mysql sql-server entity-framework


    【解决方案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”的解决方案,但这些东西与连接字符串无关......
    • 我在许多项目中工作,其中连接字符串在配置文件中定义并在其他地方使用没有问题,但正如我所说,你的问题太宽泛了。尝试添加更好的示例或您的问题,它可能会得到解决。祝你好运。
    猜你喜欢
    • 2019-08-29
    • 2013-08-30
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 2020-04-14
    相关资源
    最近更新 更多