【问题标题】:How to Confg EntityFramework to work with multiple Databases C#如何配置实体框架以使用多个数据库 C#
【发布时间】:2018-12-20 10:40:40
【问题描述】:

我正在尝试创建一个依赖于实体框架的程序,但我 需要用同一个DB创建两种类型的数据库Sql和Sqlite 如果程序可以运行,模式以便更改为 sql server 不同的电脑

尝试这个 Sol 但 DeDefaultConnectionFactory 已被弃用 https://github.com/narendrasinghrathore/entityMultipleDb

我不想只创建一个 DbContext 类并更改提供程序和连接字符串。

有人知道怎么做吗?

【问题讨论】:

    标签: c# sql-server sqlite entity-framework-6


    【解决方案1】:

    您始终可以在DbContext 类的构造函数中传递连接字符串名称

    // make your connectionString variable dynamic based on your connection type
    if(connType == "SQL")
      context = new DbContext(sQLConnectionString);
    else
      context = new DbContext(sQLLiteConnectionString);
    

    更多信息 - https://msdn.microsoft.com/en-us/library/system.data.entity.dbcontext.dbcontext(v=vs.113).aspx#M:System.Data.Entity.DbContext

    【讨论】:

    • 你能告诉我如何将它与我的继承 DbContext 的模型一起使用吗?请注意,两种 db 类型之间的更改将在运行时执行
    • 您可以像这样简单地将动态连接字符串传递给您的上下文类public MyContext() : base(connectionString)
    • Test.exe 中发生了“System.Data.Entity.Infrastructure.UnintentionalCodeFirstException”类型的异常,但未在用户代码中处理其他信息:使用 T4 模板为 Database First 和 Model First 生成的代码如果在 Code First 模式下使用,开发可能无法正常工作。要继续使用数据库优先或模型优先,请确保在执行应用程序的配置文件中指定实体框架连接字符串。
    • 您是否在应用程序中使用代码优先方法?
    • No Database First 如你所见抛出此异常
    猜你喜欢
    • 1970-01-01
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    相关资源
    最近更新 更多