【问题标题】:asp.net Identity 2.0 How to change connection string / DbContext at runtime?asp.net Identity 2.0 如何在运行时更改连接字符串/DbContext?
【发布时间】:2018-04-14 21:26:43
【问题描述】:

我想在我的 MVC5、asp.net identity 2.0 应用程序中执行以下操作:

  1. 更改 ApplicationDBContext 在运行时使用的连接字符串。我将有许多客户,每个客户都有自己的 SQL 数据库。所以在会话开始时,我需要能够指定所需的数据库连接。

  2. 我假设我添加了重载类 ApplicationDbContext:

    public static ApplicationDbContext Create(string connectionString)
    {
        return new ApplicationDbContext(connectionString);
    }
    
  3. 我还假设在 Startup.Auth.cs 中我需要修改此行以传入连接字符串。如果是这样,那么我在这样做时遇到了麻烦。

    app.CreatePerOwinContext(ApplicationDbContext.Create);
    

我走对路了吗?我还缺少什么吗?我基本上被困在这一点上。 TIA 为您提供帮助。

【问题讨论】:

  • 嗨@chris,你找到解决方案了吗?有什么建议吗?
  • 我采取了不同的途径,不需要跟进这个问题。抱歉,我没有可以分享的有效解决方案。但我认为这应该成为可能。
  • 我成功了,谢谢你的回复。

标签: asp.net-mvc-5 asp.net-identity


【解决方案1】:

您只需更改 ApplicationDbContext 以使用正确的连接字符串创建 ApplicationDbContext 实例。 Create 基本上是一个 ApplicationDbContext 工厂方法。

【讨论】:

  • 任何样本。
【解决方案2】:

同样的问题。

我有

public ApplicationDbContext() : base(@"data source=.\SQLEXPRESS; initial catalog=mydata; integrated security=true")

以及其他几个给我相同结果的选项。 “硬编码”连接工作得很好。但我需要设置 initial catalog={somevariable} 以便我可以从用户或正在登录的用户的 AspNetUser 获取 {somevariable}

一个代码示例会很有帮助。 “就这样做”不是那么多。

【讨论】:

    【解决方案3】:

    这只是使用构造函数初始化连接字符串的修复。 只需创建一个带您连接字符串的新构造函数,并将其填充到 IdentityDbContext

     public class DbContext : IdentityDbContext<User>
    {
        public DbContext()
            : base("DefaultConnection", throwIfV1Schema: false)
        {
    
        }
    
        public DbContext(string ConnectionString) : base(ConnectionString)
        {
    
        }
    }
    

    【讨论】:

      【解决方案4】:

      当您使用外部 SQL 服务器而不是 Visual Studio 的 SQL Express 时,通常会发生这种情况。您所要做的就是按照以下步骤操作:

      1. 转到 IdentityModels.cs 。
      2. 在 ApplicationDbContext 类构造函数中,将连接字符串替换为“DefaultConnString”(构造函数的第一个参数)。
      3. 在您的服务器中创建一个名为“ApplicationDbContext”的空数据库。
      4. 现在运行您的应用程序。

      应该这样解决。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-17
        • 1970-01-01
        • 2019-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多