【问题标题】:Invalid object name dbo.TableName无效的对象名称 dbo.TableName
【发布时间】:2012-06-22 19:09:19
【问题描述】:

我在这里收到以下错误:http://mvcbense.azurewebsites.net/

对象名称“dbo.BlogPosts”无效。

这是一个使用实体框架代码优先的 MVC3 应用程序。我在其他地方看了看,只发现了一些关于改变我认为是 dbo. 的架构的东西。

我对 EF 还很陌生,但看起来好像 EF 为我创建了这些,所以我不确定该怎么做。查看我本地的 SQL Server Express,所有表上都有 dbo. 架构。为什么我可以在本地运行它们但不能发布到 Azure?

谢谢

【问题讨论】:

  • 您有一个名为 dbo.BlogPosts 的表吗?你能发布你的代码吗?
  • @bluefeet 您到底想看什么?该表是动态创建的,是的,在我第一次运行应用程序后,该表本地存在于 SQL Express 中。

标签: asp.net-mvc-3 entity-framework tsql azure ef-code-first


【解决方案1】:

问题在于您没有正确配置 SQL Azure 以首先迁移基于 SQL Express 的架构。当您创建基于本地 SQL Server 的 ASP.NET Windows Azure 网站时,您必须先手动迁移配置为 SQL Azure 的本地数据库,然后将您的 ASP.NET 应用程序发布到 Windows Azure 网站。如果您不这样做,您的 ASP.NET 网站将无法运行。

由于缺少初始数据库表的例外情况,因此您需要从下面的列表中选择任何合适的数据库迁移方法来首先迁移您的数据库,然后运行您的 Windows Azure 网站:

Migrating Databases to Windows Azure SQL Database (formerly SQL Azure)

【讨论】:

  • 正是我需要的。非常感谢!您知道如何正确集成默认角色数据库吗? “找不到存储过程 'dbo.aspnet_CheckSchemaVersion'。”似乎在这里得到了回答:stackoverflow.com/questions/2165908/… 但我根本没有使用 aspnet_regsql.exe 的经验。
【解决方案2】:

Stan 建议的一个更简单的解决方案在这里有效: http://social.msdn.microsoft.com/Forums/windowsazure/en-US/9c20a99c-80c9-4b1d-afa4-26b9b418f435/connect-to-sql-azure-via-sql-server-management-studio-failed

摘录:

  1. 取消弹出的第一个连接对话框。
  2. 单击工具栏(左上角)中的“新建查询”按钮
  3. 进入 服务器名称:完整的服务器名称 登录:只有用户名(没有@...)
  4. 在选项下,连接到数据库,我输入了 TestDb1
  5. 点击连接。

【讨论】:

    【解决方案3】:

    我也遇到了同样的问题,但在使用数据库优先方法时。我的服务/服务的主机 web.config 中的连接字符串不正确。我更改了连接字符串并且它起作用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-17
      相关资源
      最近更新 更多