我正在开发一个在.netframework 4.6,VS 2015,EntityFramework 6.x上运行的项目
我正在尝试连接到不同数据库服务器中的多个数据库。
我的dabatase看起来像:
我有一个主项目和存储库项目,它是一个类库。
在我的存储库项目中,我添加了两个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;
}
这是正确的做法吗?有人可以建议如何连接到多个服务器中的多个数据库。
例外:
答案 0 :(得分:2)
使用EF,你需要两个上下文,没有办法摆脱这种情况,在你的情况下,我会做的是封装上下文。
这样您就不必担心此时您正在访问哪个数据库。
请注意,对于大多数请求,您将打开两个不同的连接并且需要付出代价,与单个数据库应用程序相比,您将拥有更多的网络IO和内存负载。