【发布时间】:2015-12-22 01:08:20
【问题描述】:
我有一个 web api 应用程序,它有自己的数据库。 Web api 应用程序将数据分发到其分支机构的数据库。分支数据库的表结构都相同,但每个数据库在web.config中都有自己的连接字符串
<add name="Branch" connectionString="metadata=res://*/Models.HOGC.csdl|res://*/Models.HOGC.ssdl|res://*/Models.HOGC.msl;provider=System.Data.SqlClient;provider connection string="data source=(local);initial catalog=GC_BranchName;user id=sa;password=Qwer0987;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="Branch_1" connectionString="metadata=res://*/Models.HOGC.csdl|res://*/Models.HOGC.ssdl|res://*/Models.HOGC.msl;provider=System.Data.SqlClient;provider connection string="data source=(local);initial catalog=GC_BranchName_1;user id=sa;password=Qwer0987;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
我首先使用实体框架数据库,然后使用 dbcontext 路由我的数据
public HOGCEntities(string connString)
: base("name=" + connString)
我的主数据库表中有一个分支列表。它包含连接字符串的名称和数据库/目录的名称 (Branch_1 & GC_BranchName_1)。
我想知道的是,我可以只使用一个连接字符串而不是手动或以编程方式创建另一个具有相同属性的连接字符串吗?比如循环遍历我的分支表来路由我的数据?
【问题讨论】:
-
您可以在上下文的构造函数中输入完整的连接字符串,而不是连接字符串名称。因此,您可以使用一个 CS 作为模板,并根据您要访问的数据库对其稍作修改。
-
@GertArnold 完整的连接字符串?真的吗?所以它会是 base("name=generatedfromaloop connectionstring=stringtemplate")?
标签: c# entity-framework