EF 6.0 Code First 遷移MySql數據庫


一、准備工作
    使用NUGET安裝Entity Framework 6,下載 MySql Connector/Net 6.9.5
 
二、創建實體
    我們在下面創建了兩個類(博客和文章),並使用了虛擬屬性標識了他們的關系。這使得實體框架具有了延遲加載特性,延遲加載意味着從數據庫加載內容的時候將會自動加載關聯實體的內容(除了我們設置了禁用延遲加載)
  
public class Blog
    {
        public int BlogId { get; set; }
        
        public string Name { get; set; }

        public virtual List<Post> Posts { get; set; }
    }

    public class Post
    {
        public int PostId { get; set; }

        public string Title { get; set; }
        
        public string Content { get; set; }

        public int BlogId { get; set; }
        
        public virtual Blog Blog { get; set; }
    }
View Code

 

三、創建Context&生成數據庫
    新建一個Blogging類繼承DbContext,在構造函數指定使用的數據庫連接,如果不指定默認是使用MS SQL。
   
public class BloggingContext : DbContext
    {
        public BloggingContext()
            : base("MySqlServer")
        { }

        public DbSet<Blog> Blogs { get; set; }

        public DbSet<Post> Posts { get; set; }
    } 
View Code

 

讀取和寫入數據
    運行這個應用程序的時候,EF會自動幫我們創建數據庫如果還沒有創建數據庫。
   
class Program
    {
        static void Main(string[] args)
        {
            using (BloggingContext db = new BloggingContext())
            {
                db.Blogs.Add(new Blog { Name = "Another Blog" });
                db.SaveChanges();

                foreach (var blog in db.Blogs)
                {
                    Console.WriteLine(blog.Name);
                } 
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey(); 
        }
    }
View Code

 

當執行完成我們就可以去查看生成的數據庫
生成如下
 
 
五、更改數據模型
在Package Manager Console輸入 Eable-Migrations 開啟EF遷移功能
運行成功之后會在我們的項目文件下增加Migrations文件夾以及Configuration.cs,這個文件包含遷移Blogging的設置。
 
對Blogs類增加Url屬性,在剛才的PMC輸入 PM> Add-Migration AddUrl 會報下面錯誤
No MigrationSqlGenerator found for provider 'MySql.Data.MySqlClient'. Use the SetSqlGenerator method in the target migrations configuration class to register additional SQL generators.
 
在重新運行上面命令正確生成類文件
 
其實到了這里還沒有真正的更新數據庫我們還需要執行  Update-Database -Verbose
查看數據庫已經成功更新
 
六、Fluent API
我們使用這個API來修改數據庫的表設置
在執行修改的遷移命令
成功更新數據庫
 


免責聲明!

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



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