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

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

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

最佳答案

我不明白如何为每个数据库使用一个上下文(以及为什么要绕过),因为使用两个数据库也需要两个连接字符串。

您提到表属性,您是否使用代码优先(问题标记为数据库优先)?在数据库优先方法中,您只需使用向导创建附加上下文,在代码优先方法中,您将使用类似这样的内容(以及配置中的 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; }
}

关于mysql - 是否可以将 ASP.NET MVC 应用程序映射到多个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21588864/

相关文章:

php - 我在 cPanel 中上传了一个 laravel 项目,但收到此错误 : SQLSTATE[HY000] [1044] Access denied for user

mysql - 如何正确总结为 “Order Time” + “leave Time” - mysql (添加小时而不是秒)

php - 使用 PDO 在 MySQL "IN"查询中多次使用相同的数组

c# - 将 json null 发送到 Controller 会导致包含 0 个元素的列表

c# - ASP.NET MVC 按请求注入(inject)

c# - 现有数据库中代码优先的外键问题

c# - 在 Entity Framework 中动态选择数据库

mysql - 如何向MySQL动态表中插入数据?

javascript - GET 方法总是接收空值

c# - 如何使我的字符串属性可为空?