ef開發模式有3種:DateBase First(數據庫優先)、Model First(模型優先)和Code First(代碼優先)。這里我用的是code first 一個簡單的例子:
public class BloggingContext : DbContext { public BloggingContext() : base("name=testConn") { } public DbSet<Person> Blogs { get; set; } public DbSet<DepartPerson> Posts { get; set; } } class Program { static void Main(string[] args) {//模型改變重新創建數據庫 Database.SetInitializer(new DropCreateDatabaseIfModelChanges<BloggingContext>()); using (var db = new BloggingContext()) { Person blog = new Person() { Name = "zhangsan", Age = "29", ID = Guid.NewGuid().ToString().Replace("-", "") }; db.Blogs.Add(blog); db.SaveChanges(); foreach (var item in db.Blogs) { Console.WriteLine("Name:" + item.Name); } } Console.Read(); }
簡單介紹一下Database.SetInitializer方法
一:數據庫不存在時重新創建數據庫
Database.SetInitializer<testContext>(new CreateDatabaseIfNotExists<testContext>());
二:每次啟動應用程序時創建數據庫
Database.SetInitializer<testContext>(new DropCreateDatabaseAlways<testContext>());
三:模型更改時重新創建數據庫
Database.SetInitializer<testContext>(new DropCreateDatabaseIfModelChanges<testContext>());
四:從不創建數據庫
Database.SetInitializer<testContext>(null);
這對這幾種方式,可以通過代碼做出改動,然后調試一下觀察一下數據庫的變化,會理解的更透徹!