【问题标题】:Azure Web API Entity Framework, Http 500 error after publish, issue creating databaseAzure Web API 实体框架,发布后出现 Http 500 错误,创建数据库时出现问题
【发布时间】:2014-08-19 14:11:26
【问题描述】:

我构建了一个简单的 Web API,我在 Azure 中托管,它以移动服务 iOS .NET 后端示例应用程序入门为模型:

http://azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-ios-get-started/

为了让示例更接近对我有用的东西,我更改了

\DataObjects\ToDoItem.cs

对一系列可选的 int/string 类型进行建模。

我正在使用:Entity Framework 6.1.0、Visual Studio 2013。

但是,每当我通过“右键单击项目”-> 发布 Web 向导进行部署,然后尝试通过有效的 HTTP REST 调用访问 Web API 时,我都会在 Azure 中收到以下 500 HTTP 错误。

Exception=System.NotSupportedException:无法检查模型兼容性,因为数据库不包含模型元数据。只能检查使用 Code First 或 Code First 迁移创建的数据库的模型兼容性...

如果我通过本地的 Visual Studio 包管理器控制台,使用:

启用迁移

然后玩“Add-Migration”和“Update-Database”

我也可以在@Azure 中抛出此错误(下面的“”标记包含我的描述):

Exception=System.InvalidOperationException:此操作需要连接到“主”数据库。无法创建到“主”数据库的连接,因为原始数据库连接已打开并且凭据已从连接字符串中删除。提供一个未打开的连接。 ---> System.Data.SqlClient.SqlException: Login failed for user 'Login_'。

我还在 SQL Management Studio 中连接到 Azure DB 云,移动服务应用程序的关联 DB 中没有表。

我们将非常感谢您对此进行排序。谢谢。

【问题讨论】:

    标签: asp.net .net entity-framework exception azure


    【解决方案1】:

    已排序。

    问题的根源在于对于实体框架如何将模型连接到 EntityContext.MyContext 的理解不足

    我发现以下文章是解决问题的非常有用的资源,对我来说,对这个问题至关重要的是对 Context 实现的解释:

    文章:http://blogs.msdn.com/b/azuremobile/archive/2014/04/10/creating-an-azure-mobile-services-net-backend-from-scratch.aspx

    代码示例:

    public class MyContext : EntityContext
    {
        public MyContext()
            : base()
        {
        }
    
        public MyContext(string schema)
            : base(schema)
        {
        }
    
        public DbSet<TodoItem> TodoItems { get; set; }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-10-20
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-17
      • 2017-02-04
      相关资源
      最近更新 更多