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

一:數據庫不存在時重新創建數據庫

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


三:模型更改時重新創建數據庫

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


四:從不創建數據庫

 
Database.SetInitializer<testContext>(null);

 這對這幾種方式,可以通過代碼做出改動,然后調試一下觀察一下數據庫的變化,會理解的更透徹!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM