实体框架数据库未更新,没有错误

时间:2019-10-16 23:09:08

标签: entity-framework

我使用过add-migration,然后使用了update-database-都没有错误运行,但是我要求进行的更改没有发生。我在服务器资源管理器中检查了表数据,它不会将新列与其他新数据一起添加。如果您需要更多代码,请附上我的代码。

我确实创建了另一个迁移,并复制了相同的更改以添加到新的更改中,以查看新的更改是否可以推送。 Migrations/Update2.csMigrations/Update1.cs是完全相同的代码。

//Migrations/Update2.cs "The updated Migration"

namespace EnrollmentApplication.Migrations
{
    using System;
    using System.Data.Entity.Migrations;

    public partial class Update2 : DbMigration
    {
        public override void Up()
        {
            AddColumn("dbo.Courses", "InstructorName", c => c.String());
            AddColumn("dbo.Enrollments", "Notes", c => c.String());
            AddColumn("dbo.Students", "Age", c => c.Int(nullable: false));
            AlterColumn("dbo.Courses", "CourseTitle", c => c.String(nullable: false, maxLength: 150));
            AlterColumn("dbo.Courses", "CourseCredits", c => c.String(nullable: false, maxLength: 4));
            AlterColumn("dbo.Enrollments", "Grade", c => c.String(nullable: false));
            AlterColumn("dbo.Enrollments", "AssignedCampus", c => c.String(nullable: false));
            AlterColumn("dbo.Enrollments", "EnrollmentSemester", c => c.String(nullable: false));
            AlterColumn("dbo.Students", "StudentFirstName", c => c.String(nullable: false, maxLength: 50));
            AlterColumn("dbo.Students", "StudentLastName", c => c.String(nullable: false, maxLength: 50));
        }

        public override void Down()
        {
            AlterColumn("dbo.Students", "StudentLastName", c => c.String());
            AlterColumn("dbo.Students", "StudentFirstName", c => c.String());
            AlterColumn("dbo.Enrollments", "EnrollmentSemester", c => c.String());
            AlterColumn("dbo.Enrollments", "AssignedCampus", c => c.String());
            AlterColumn("dbo.Enrollments", "Grade", c => c.String());
            AlterColumn("dbo.Courses", "CourseCredits", c => c.String());
            AlterColumn("dbo.Courses", "CourseTitle", c => c.String());
            DropColumn("dbo.Students", "Age");
            DropColumn("dbo.Enrollments", "Notes");
            DropColumn("dbo.Courses", "InstructorName");
        }
    }
}


//Models/Course.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;

namespace EnrollmentApplication.Models
{
    public class Course : IValidatableObject
    {
        public virtual int CourseId { get; set; }
        [Required,]
        [StringLength(150)]
        public virtual string CourseTitle { get; set; }
        public virtual string CourseDescription { get; set; }
        [Required]
        [StringLength(4), MinLength(1)]
        public virtual string CourseCredits { get; set; }

        public virtual string InstructorName { get; set; }

        public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
        {
            // Validation 1: Credits have to be between 1-4

            if(CourseDescription.Split (' ').Length > 100)
            {
                yield return (new ValidationResult("Your description is too verbose"));
            }

            throw new NotImplementedException();
        }
    }
}

//Models/Enrollment.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;

namespace EnrollmentApplication.Models
{
    public class Enrollment
    {
        public virtual int EnrollmentId { get; set; }
        public virtual int StudentId { get; set; }
        public virtual int CourseId { get; set; }

        [Required]
        [RegularExpression("[A-F])")]
        public virtual string Grade { get; set; }
        public virtual Student Student { get; set; }
        public virtual Course Course { get; set; }
        public virtual bool IsActive { get; set; }

        [Required]
        public virtual int AssignedCampus { get; set; }

        [Required]
        public virtual string EnrollmentSemester { get; set; }

        [Required]
        public virtual int EnrollmentYear { get; set; }

        [RegularExpression(@"^[0-9a-zA-Z''-'\s]{1,40}$",
        ErrorMessage = "Invalid Characters")]
        public virtual string Notes { get; set; }
    }
}

//Models/Student.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;

namespace EnrollmentApplication.Models
{
    public class Student
    {
        public virtual int StudentID { get; set; }

        [Required]
        [StringLength(50)]
        public virtual string StudentFirstName { get; set; }

        [Required]
        [StringLength(50)]
        public virtual string StudentLastName { get; set; }

        //MinimumAge(20)
        [MinimumAge(20)]
        public virtual int Age { get; set; }

        public virtual string Address1 { get; set; }
        public virtual string Address2 { get; set; }
        public virtual string City { get; set; }
        [MaxLength(5)]
        [MinLength(5)]
        [RegularExpression(@"^[0-9a-zA-Z''-'\s]{1,40}$",
        ErrorMessage = "Enter a 5 digit zipcode")]
        public virtual string Zipcode { get; set; }
        [MaxLength(2)]
        [MinLength(2)]
        [RegularExpression(@"^[0-9a-zA-Z''-'\s]{1,40}$",
        ErrorMessage = "Enter a 2 digit State code")]
        public virtual string State { get; set; }
    }
}

错误消息为零,但我的更改未应用。

1 个答案:

答案 0 :(得分:0)

我必须删除Migrations文件夹,在Server Explorer中删除数据库,然后在Windows Explorer中,在App Data文件夹中删除我的数据库。重新加载应用程序并构建新数据库,一切正常。