gpt4 book ai didi

asp.net-mvc-5 - 每个客户端一个数据库的 EF6(相同的上下文)

转载 作者:行者123 更新时间:2023-12-01 13:56:02 25 4
gpt4 key购买 nike

我正在开发一个 ASP.Net MVC 5 应用程序,它将成为我客户的 SaaS。我想使用 EF6,目前正在使用 localDb。我是 Entity Framwork 的初学者,我很难学习它。在过去的 2 天里,我一直在网上搜索,找到了不同的方法,但从未找到适合我的明确答案来回答我的问题。

我遵循了 ASP.Net MVC 4 和 5 上的 Scott Allen 教程,所以目前,我有 2 个上下文,'IdendityDbContext' 和 'MyAppDbContext' 都使用名为 MyAppDb.mdf 的数据库指向 DefaultConnection 字符串

我希望我的客户能够登录该网站并连接到他们自己的数据库,因此我计划为我的每个客户创建一个新的 ConnectionString(和数据库),并使用我的方法为我的客户帐户信息保留一个 ConnectionString IdentityDbContext。

我有很多问题,但这里有两个最重要的问题:

1) 我不确定如何在本地进行测试。我是否必须为我的所有客户端创建新的数据连接,并且当客户端连接时,我动态编辑连接字符串并将其传递给“MyAppContext”?

2) 即使我能够做到这一点,假设我有 200 个客户,这意味着我将有 201 个数据库:1 个帐户数据库 (IdentityDbContext) 和 200 个客户端数据库 (MyAppDbContext)。如果我将来更改我的模型,是否意味着我必须为 200 个数据库中的每一个运行包管理器控制台迁移命令行?这看起来很残酷。一定有一种方法可以在每个客户端数据库上轻松传播我的模型吧?

抱歉发了这么长的帖子,非常感谢你。

最佳答案

(1) 的答案基本上是"is",您需要这样做。 (2) 的答案是您必须对所有数据库运行迁移。我无法想象您会怎么想还有其他方法可以做到这一点,您有 200 个独立的数据库,它们都需要相同的模式更改。实现这一目标的唯一方法是对它们中的每一个运行相同的脚本(或迁移)。这就是您现有的单租户模型的缺点。

关于asp.net-mvc-5 - 每个客户端一个数据库的 EF6(相同的上下文),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28506850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com