是否可以将ASP.NET MVC应用程序映射到多个数据库?

时间:2014-02-05 21:26:24

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

如果我们想要将模型(类)映射到特定表(在数据库中),可以使用[table]属性来完成,但它仅限于一个数据库。 如果我们说4个类和2个数据库怎么办。我想将class1映射到table1(DB1),class2到table2(DB1),class3到table3(DB2)以及class4到table4(DB2)。由于我们正在处理2个数据库,我们是否需要创建不同的数据上下文,还是有不同的方法?

1 个答案:

答案 0 :(得分:0)

由于使用两个数据库还需要两个连接字符串,因此我不会看到你如何使用每个数据库一个上下文(为什么你想要绕过)?

你提到了table属性,你是否使用代码优先(问题是用数据库优先标记的)?在数据库优先方法中,您只需使用向导创建一个额外的上下文,在代码中首先使用类似的东西(以及配置中的DB1Connection / DB2Connection连接字符串):

public class DB1Entities: DbContext {
    public DB1Entities() : base("DB1Connection") {
    }

    public DbSet<Table1> Table1 { get; set; }
    public DbSet<Table2> Table2 { get; set; }
}

public class DB2Entities: DbContext {
    public DB2Entities() : base("DB2Connection") {
    }

    public DbSet<Table3> Table3 { get; set; }
    public DbSet<Table4> Table4 { get; set; }
}