我有一个包含三个字段的公司(选择列表),区域(选择列表)和详细信息(输入框)的表单。公司列表选项是从主数据库(MasterDb)的公司表(可能的值为CompanyXX和CompanyYY)中填充的。
<connectionStrings>
<add name="DefaultConnection" connectionString="" />
<add name="CompanyXX" connectionString="" />
<add name="CompanyYY" connectionString=" />
</connectionStrings>
public class Company
{
[Required]
[KeyAttribute]
public int Id { get; set; }
[StringLength(100)]
public string Name { get; set; }
}
public class Area
{
public int Id { get; set; }
public string Name { get; set; }
public Nullable<bool> Active { get; set; }
}
我想根据选择的公司从不同的数据库中填充区域选择列表。例如,如果我在下拉列表中选择CompanyXX,它应该从web.config中选择另一个连接字符串(每个公司在数据库中都有自己的连接字符串)并从该数据库中获取区域列表。我可以执行ajax调用来从同一数据库动态加载区域列表,但不能从其他数据库动态加载区域列表。你能帮忙吗?是否可以动态更改连接字符串?
仅当您在所有不同数据库中具有相同的数据库结构时,才有可能。这样,您只需在创建用于查询的DbContext对象时传递连接字符串名称即可。
if(CompanyXX)
{
YouDbContext context = new YourDbContext("CompanyXX");
var areas = context.Areas.All();
}
else if(CompanyYY)
{
YouDbContext context = new YourDbContext("CompanyYY");
var areas = context.Areas.All();
}
确保已在web.config中相应地设置了连接字符串名称。
在其他情况下,如果您具有不同的数据库结构,则必须创建三个不同的实体框架数据模型(.edmx文件)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句