【问题标题】:InvalidOperationException on MVCMVC 上的 InvalidOperationException
【发布时间】:2015-02-04 03:18:19
【问题描述】:

我正在与其他学生一起使用 Team Foundation Server 在线作为源代码,我们的客户是 Visual Studio

当我浏览我的应用程序或单击与我的数据库实体相关的任何内容时,我是唯一一个遇到以下异常错误的人:

“EntityFramework.dll 中出现‘System.InvalidOperationException’类型的异常,但未在用户代码中处理。”

我尝试更新数据库,但我也收到此错误:

“数据库中已经有一个名为‘Post’的对象。”

我也做了 Add-migration “新迁移的名称”,但我一直得到这个:

“无法生成显式迁移,因为以下显式迁移处于挂起状态:[201502020217243_InitialCreate]。在尝试生成新的显式迁移之前应用挂起的显式迁移。” InitialCreate.cs 的代码:

namespace Aliens.Migrations
{
    using System;    
    using System.Data.Entity.Migrations;        
    public partial class InitialCreate : DbMigration    
    {
        public override void Up()    
        {
            CreateTable(    
                "dbo.Post",    
                c => new    
                    {
                        PostID = c.Int(nullable: false, identity: true),    
                        Alias = c.String(),    
                        Location = c.String(),    
                        PostDate = c.DateTime(nullable: false),    
                        PostTitle = c.String(),    
                        PostMessage = c.String(),
                    })    
                .PrimaryKey(t => t.PostID);

            CreateTable(    
                "dbo.Profile",    
                c => new    
                    {
                        ProfileID = c.Int(nullable: false, identity: true),
                        FirstName = c.String(),    
                        LastName = c.String(),    
                        ProfileAlais = c.String(),    
                    })    
                .PrimaryKey(t => t.ProfileID);

            AddColumn("dbo.Alien", "Post", c => c.String());
        }

        public override void Down()
        {
            DropColumn("dbo.Alien", "Post");    
            DropTable("dbo.Profile");    
            DropTable("dbo.Post");
        }
    }
}

Configuration.cs 的代码是:

namespace Aliens.Migrations    
{
    using System;    
    using System.Data.Entity;    
    using System.Data.Entity.Migrations;    
    using System.Linq;

    internal sealed class Configuration : DbMigrationsConfiguration<Aliens.DAL.AlienContext>
    {
        public Configuration()    
        {
            AutomaticMigrationsEnabled = false;

            ContextKey = "Aliens.DAL.AlienContext";
        }
    }
}

【问题讨论】:

  • 我创建了一个空的 Up() 方法,注释掉了真正的 InitialCreat.cs,运行它,现在我可以创建下一个迁移,但是每当我点击任何东西时,我都会得到相同的 System.InvalidOperationException与数据库有关。请需要帮助!
  • 报错说明当你尝试创建表Post时,它已经在数据库中了。所以先检查是否没有名称为Post的表,然后再创建它。
  • 我终于解决了这个问题,正如我上面描述的那样,我为每个待处理的迁移做了什么。然后我使用这个可爱的命令 Add-Migration Initial -IgnoreChanges。

标签: c# asp.net-mvc entity-framework


【解决方案1】:

我创建了一个空的 Up() 方法,注释掉了真正的 InitialCreat.cs,运行它,现在我可以创建下一个迁移。

我终于解决了这个问题,正如我上面描述的那样,我为每个待处理的迁移做了什么。然后我使用这个可爱的命令 Add-Migration Initial -IgnoreChanges

【讨论】:

    猜你喜欢
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 2019-05-16
    相关资源
    最近更新 更多