首页 > 代码库 > MVC学习之 Code First

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 =http://www.mamicode.com/ db.Student.ToList();            return View();        }

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

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

MVC学习之 Code First