【问题标题】:Can I have different Dbcontext with asp.identity我可以有不同的 Dbcontext 与 asp.identity
【发布时间】:2019-10-14 18:10:20
【问题描述】:

我有 3 个 Web 应用程序,它们是完全相同的项目,但它们正在访问 3 个不同的数据库,它们具有完全相同的结构。我想用 OAuth 和微软身份创建 Api。 我的问题是 - 我可以有一个项目 (web api) 可以为 3 个不同的数据库创建 3 个 owin 上下文,这样我就不必发布 3 个完全相同的项目。

【问题讨论】:

  • 应用程序是否需要同时引用多个数据库,或者可以在启动时确定使用哪一个?
  • 我不明白你到底在问什么。我想我必须在启动时确定所有 3 个上下文,但我认为我会遇到 OAuth 问题。我希望所有 3 个应用程序都向同一个控制器发送请求,但根据它们的参数,我会询问不同的数据库
  • 所以你问如何根据http request 中的一些变量来改变connectionString?而且每个请求只使用一个数据库?
  • 是的,但要记住每个请求的授权。主要问题是身份,如果我不使用身份,我会使用 ADO 在每个请求上创建连接,但显然我必须使用身份

标签: c# asp.net-mvc asp.net-identity owin


【解决方案1】:

从技术上讲,您可以拥有多个数据库,您只需通过 connectionString 对每个案例的配置进行编程。

MyDbContext :

protected override void OnConfiguring( DbContextOptionsBuilder optionsBuilder )
{
        optionsBuilder.UseSqlServer( "<Your Connection String Here>" );
}

Startup.ConfigureServices:

public IServiceProvider ConfigureServices( IServiceCollection services )
{
    var configuration = new Configuration().AddJsonFile( "MyConfig.json" );
    services.AddEntityFramework( configuration )
    // ...
}

关于该主题的另一个可以提供帮助的网址:

https://entityframework.net/knowledge-base/22654400/entity-framework-6-and-asp-net-identity-usermanager--multiple-dbcontext

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-09
    • 2020-08-19
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    相关资源
    最近更新 更多