首页 > 解决方案 > Entity Framework .Database.Initialize(true) 在 Azure 上工作时不创建表

问题描述

我有 mvc 应用程序。我正在使用代码优先的方法。当新租户注册到系统时,我使用 azure sql fluent api 创建新数据库。

数据库创建没有问题,但它如预期的那样是空的。为了从我的迁移中初始化数据,我称myDB.Database.Initialize(true);它通过而没有任何错误,但没有创建表。

myDB.Database.Initialize(true);为了确保我在本地计算机上运行项目,并在初始化运行数据库后将连接字符串指向天蓝色数据库 。

我研究了互联网人指出应用迁移的超时问题。即使我没有任何超时问题延长迁移超时但仍然相同。

当我从我的计算机运行(连接到 azure db)时它会创建表,但在 azure 上运行时它不会创建,即使我没有看到任何错误。

知道为什么它不在 azure sql 数据库上创建吗?

尝试更改迁移配置的超时。

标签: sql-serverasp.net-mvcentity-frameworkazureef-code-first

解决方案


根据评论,恭喜 Cozdemir 解决了这个错误:

我通过关注广告解决了我的问题。我认为我的问题是因为我的应用程序是多租户的。我使用连接字符串动态连接到数据库。每个租户通过连接字符串动态连接到他/她的数据库。所以连接字符串不在我的 webconfig 中。这就是为什么我需要指定连接字符串。而上面的线程正是关于这一点。我实现了该代码并且它有效。参考:EF Code First MigrateDatabaseToLatestVersion 接受来自配置的连接字符串名称

我将此作为答案发布,这可能对其他社区成员有益。


推荐阅读