gpt4 book ai didi

c# - Entity Framework 6 : Creating database with multiple contexts

转载 作者:搜寻专家 更新时间:2023-10-30 20:38:22 25 4
gpt4 key购买 nike

我正在开发一个 Multi-Tenancy 应用程序,为此我们决定为每个租户建立一个数据库。我正在编写一项服务来为新客户端创建和初始化新数据库。在同一个数据库上定义了多个上下文。到目前为止,我已经使用 nuget update-database 让所有上下文创建它们的 db 对象。现在我需要在运行时做同样的事情。我试过:

context.Database.Initialize(false);
context.Database.CreateIfNotExists();

但只有第一个上下文创建它的表。我知道上下文会在第一次使用时初始化数据库,但显然如果数据库已经存在则不会。我尝试了几个初始化器,但没有成功。我不想编写一个结合了所有其他上下文的新上下文,因为它很难维护。我知道另一种选择是在部署时生成 sql 脚本并在运行时执行它们。这将是我最后的选择。

非常感谢任何建议。

最佳答案

EF6 确实支持多个上下文的初始化。它基于 ContextKey(__MigrationHistory 上的属性和新字段)。
它支持您的(和我的一样)基于多个数据库的 Multi-Tenancy 方法。
我知道添加链接不好,但这篇文章做得很好: https://msdn.microsoft.com/en-us/magazine/dn948104.aspx

关于c# - Entity Framework 6 : Creating database with multiple contexts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31170814/

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