连接到不同数据库服务器中的多个数据库

时间:2016-05-20 21:16:17

标签: c# entity-framework-6 .net-4.6

我正在开发一个在.netframework 4.6,VS 2015,EntityFramework 6.x上运行的项目

我正在尝试连接到不同数据库服务器中的多个数据库。

我的dabatase看起来像:

enter image description here

我有一个主项目和存储库项目,它是一个类库。

我的proj结构: enter image description here

在我的存储库项目中,我添加了两个EntityFramework模型,即CompanyEmployeeModel.edmx和MultipleTestModel.edmx。

在我的EmployeeDAL.CS中:

private static async Task<string> GetCompanyInformationByIdCompany(int idCompany)
        {
            string result = string.Empty;

            try
            {
                using (var db = new Entities())
                {
                    var companyInformation = await db.CompanyInformations.Where(x => x.id == idCompany).FirstOrDefaultAsync();
                    result = companyInformation.name;
                }

 using (var dbTest = new fccidevEntities())
                    {
                        var EmployeeInformation = await dbTest.Employees.Where(x => x.Id == 10).FirstOrDefaultAsync();
                        //result = EmployeeInformation..name;
                    }
            }
            catch
            {
                result = string.Empty;
            }

            return result;
        }

这是正确的做法吗?有人可以建议如何连接到多个服务器中的多个数据库。

例外:

enter image description here

1 个答案:

答案 0 :(得分:2)

使用EF,你需要两个上下文,没有办法摆脱这种情况,在你的情况下,我会做的是封装上下文。

这样您就不必担心此时您正在访问哪个数据库。

请注意,对于大多数请求,您将打开两个不同的连接并且需要付出代价,与单个数据库应用程序相比,您将拥有更多的网络IO和内存负载。