MVC学习之 Code First

Code First 代码优先。

上代码:

新建你需要的数据模型(也可以认为是你需要的数据表):

namespace CodeFirstDemo.Models
{
    public class Student
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

    public class Teacher
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}


新建CodeFirstDB类,继承自DbContext类。(注意引入System.Data.Entity命名空间的引用):

namespace CodeFirstDemo.Models
{
    public class CodeFirstDB:DbContext
    {
        public DbSet<Student> Student { get; set; }
        public DbSet<Teacher> Teacher { get; set; }
    }
}

 

数据库创建:

1.播种数据库。

2.为了保证数据库与模型同步(暂不考虑数据迁移的问题),在程序启动每次启动时重新创建数据库(仅当检测到模型改变时创建)

 

 protected void Application_Start()
        {
            //当程序每次启动时,检测到模型改变则重新创建数据库
            Database.SetInitializer(new CodeFirstDemo());

            
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuthConfig.RegisterAuth();
        }
  /// <summary>
    /// 播种数据库
    /// </summary>
    public class CodeFirstDemo : DropCreateDatabaseAlways<CodeFirstDB>
    {
        protected override void Seed(CodeFirstDB context)
        {
            context.Student.Add(new Student { Id = 1, Name = "小明" });
            context.Teacher.Add(new Teacher { Id = 1, Name = "老王" });
            base.Seed(context);
        }
    }

程序调用:

 public ActionResult Index()
        {
            CodeFirstDB db = new CodeFirstDB();
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
            var data = db.Student.ToList();
            return View();
        }

调用完成后,在你的App_Data文件夹中查看结果。

注意:如果要为字段赋值默认值。在默认构造函数中进行。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。