【问题标题】:Asp.Net MVC Code First : Populate drop down options from different databaseAsp.Net MVC Code First:填充来自不同数据库的下拉选项
【发布时间】:2014-03-26 14:25:01
【问题描述】:

我有一个包含三个字段 Company(选择列表)、Area(选择列表)和 Detail(输入框)的表单。正在从主数据库 (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 调用以从同一数据库而不是从不同的数据库动态加载区域列表。你能帮忙吗?这可以动态更改连接字符串吗?

【问题讨论】:

    标签: asp.net-mvc entity-framework ef-code-first


    【解决方案1】:

    只有在所有不同的数据库中都具有相同的数据库结构时,这才有可能。这样,您只需在创建 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文件)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-01
      • 1970-01-01
      相关资源
      最近更新 更多