无法刷新数据库模型

时间:2015-11-01 13:14:31

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

我无法刷新数据库模型。我使用的是Asp .net 5。

这是我所做的一个简短例子:

1.在" person.cs"中创建班级人员。文件,里面是"模型" 。目录

namespace MyWeb.Models
{
    public class person
    {
        public int personID { get; set; }
        public string login { get; set; }
        public string password { get; set; }
        public string name { get; set; }
        public string surname { get; set; }
        public DateTime dateOfBirth { get; set; }
    }
}

2。在Models目录中创建myContext.cs文件。

namespace MyWeb.Models
{
    public class myContext : DbContext
    {
        public DbSet<person> persons { get; set; }
    }
}

3.在Models目录

中创建myInitializer.cs
namespace MyWeb.Models
{
    public class myInitializer :DropCreateDatabaseIfModelChanges<myContext>
    {
        protected override void Seed(myContext context)
        {
            var persons= new List<person>
            {
                new person{ login = "me", name = "meme", password = "abc", surname = "abc" },
                new person{ login = "me2", name = "meme2", password = "abc2", surname = "abc2" }
            };
            foreach (var p in persons)
            {
                context.persons.Add(p);
            }
            context.SaveChanges();
        }
    }
}

4.Inside Global.asax.cs添加以下行= Database.SetInitializer(new myInitializer())

namespace MyWeb
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            Database.SetInitializer<myContext>(new myInitializer());
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
}

首次运行后,一切正常,数据库已创建,记录已添加到数据库,但是当模型已更改时,数据库不会重新加载。我在网上搜索这个但没有任何帮助。

如何刷新数据库模型?

1 个答案:

答案 0 :(得分:1)

您可以在程序包管理器控制台中使用Enable-Migrations命令,然后使用Add-Migration "description of changes",最后使用Update-Database