gpt4 book ai didi

.net - 在多个数据库上使用 Entity Framework

转载 作者:行者123 更新时间:2023-12-03 10:26:45 25 4
gpt4 key购买 nike

我正在编写一个将与现有系统集成的工资系统。原始系统有一个主数据库,处理用户管理和一些全局配置,下面有多个数据库,每个数据库结构相同,基本上每个数据库都是一个公司工资数据库,所有这些都与主数据库相关联,因为它属于父数据库公司拥有许多子公司,每个子公司都有自己的人力资源部门。

我想知道是否有任何方法可以基于 cookie 或存储他们希望连接的公司的另一种方法,使用过滤器根据他们的输入动态更改 Entity Framework 目标数据库?

这是一个例子:

用户 A 登录到站点,页面加载用户有权访问的可用公司,然后用户将选择一家公司,他们在该公司拥有管理员权限,他们添加了一名员工,在该操作运行之前,asp.net将连接字符串切换到适当的数据库,然后添加记录。

最佳答案

这很简单。我有:

public WMSEntities() : base("name=WMSEntities") //WMSEntities is conection string name in     web.config also the name of Entitiframework
{
}

已经在 edmx 文件夹的自动生成的 Model.Context.cs 中

为了在运行时连接到多个数据库,我在同一个文件 Model.Context.cs 中创建了另一个将连接字符串作为参数的构造函数,如下所示
public WMSEntities(string connStringName)
: base("name=" + connStringName)
{
}

例如,现在我在 Web.Config 中添加了其他连接字符串
<add name="WMSEntities31" connectionString="data source=TESTDBSERVER_NAME;initial catalog=TESTDB;userid=TestUser;password=TestUserPW/>

<add name="WMSEntities" connectionString="data source=TESTDBSERVER_NAME12;initial catalog=TESTDB12;userid=TestUser12;password=TestUserPW12/>

然后,当连接到数据库时,我调用下面的方法,将 connetionString 名称作为参数传递
public static List<v_POVendor> GetPOVendorList(string connectionStringName)
{
using (WMSEntities db = new WMSEntities(connectionStringName))
{
vendorList = db.v_POVendor.ToList();
}
}

关于.net - 在多个数据库上使用 Entity Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17941225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com