MVC上的InvalidOperationException

时间:2015-02-04 03:18:20

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

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

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

  

"类型' System.InvalidOperationException'的例外情况发生在EntityFramework.dll中,但未在用户代码中处理。"

我尝试更新数据库,但我也遇到了这个错误:

  

"已经有一个名为' 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";
        }
    }
}

1 个答案:

答案 0 :(得分:0)

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

我终于通过我为每个待处理的迁移所做的事情解决了它,正如我在上面描述的那样。然后我使用这个可爱的命令Add-Migration Initial -IgnoreChanges