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文件夹中查看结果。
注意:如果要为字段赋值默认值。在默认构造函数中进行。
时间: 2024-10-29 19:07:52