ef和mysql使用(一)

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方法ui

一:數據庫不存在時從新建立數據庫
spa

Database.SetInitializer<testContext>(new CreateDatabaseIfNotExists<testContext>());
 
二:每次啓動應用程序時建立數據庫
 
Database.SetInitializer<testContext>(new DropCreateDatabaseAlways<testContext>());


三:模型更改時從新建立數據庫調試

 
Database.SetInitializer<testContext>(new DropCreateDatabaseIfModelChanges<testContext>());


四:從不建立數據庫code

 
Database.SetInitializer<testContext>(null);

 這對這幾種方式,能夠經過代碼作出改動,而後調試一下觀察一下數據庫的變化,會理解的更透徹!blog

相關文章
相關標籤/搜索