EF操作多数据库

时间:2023-03-10 07:58:17
EF操作多数据库

1.Account3_Register_DB_Model作为(空)模板库,根据此模板生成的其他数据除了数据库名称不一样,其他表,视图,字段等等都一致

2.Account3_Platform_Master数据库记录各个数据库的名称,连接该数据库的账号密码等基础信息

3.分别根据Account3_Register_DB_Model以及Account3_Platform_Master生成对应的数据库模型

4.将生成得到的Account3_Register_DB_Model.edmx展开并且打开Account3_Register_DB_ModelEntities可以看到

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 9.5px Helvetica }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 9.5px Helvetica; color: #b4261a }
span.s1 { color: #0433ff }
span.s2 { color: #000000 }

public Account3_Register_DB_ModelEntities()

: base("name=Account3_Register_DB_ModelEntities")

{

}

构造方法没有任何参数,name=Account3_Register_DB_ModelEntities其实就是对应的app.config 的connectionStrings.(因为两个数据库模型,所以app.config会有

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 9.5px Helvetica; color: #0433ff }

Account3_Platform_MasterEntities以及Account3_Register_DB_ModelEntities的连接数据库的基本信息

)

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 9.5px Helvetica }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 9.5px Helvetica; min-height: 11.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 9.5px Helvetica; color: #33a2bd }
span.s1 { color: #0433ff }
span.s2 { color: #000000 }

5.新建Account3_Register_DB_ModelEntities.cs类文件,对应的edmx同类名文件的构造方法,代码

using System;

using System.Collections.Generic;

using System.Data.Entity;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace EFACCPCLib.DataAccess

{

public partial class Account3_Register_DB_ModelEntities : DbContext

{

public Account3_Register_DB_ModelEntities(string connectionString)

: base(connectionString)

{

this.Configuration.LazyLoadingEnabled = false;

}

}

}

connectionString:格式与app.config的类似。数据库名称账号密码可以通过master数据库获取,最终组装合适的连接字符串

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 9.5px Helvetica; color: #33a2bd }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 9.5px Helvetica; color: #b4261a }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 9.5px Helvetica; color: #33a2bd }