一步一步學EF系列四【升級篇 實體與數據庫的映射】


     之前的三張為基礎篇,如果不考慮架構問題,做一般的小程序,以足夠用了。基本的增刪改查也都有了。但是作為學習顯然是不夠的。通過之前三章的學習,有沒有發現這樣寫有什么問題,有沒有覺得繁瑣的?可能有人會說,之前的三篇總共加起來代碼也就幾十行哪里繁瑣了。呵呵,是不是覺得EF很強大。但是其實按照之前的寫法的話是比較繁瑣的,為什么呢?這就是本文的重點 接着往下看!!!

      先看一下之前的配置類

      截圖

      回顧我們的范例是只有兩張表,然后需要配置映射關系的時候在 DbContext,的OnModelCreating進行配置。但是如果有幾十張而且關系比較復雜的表,如果到放到這個OnModelCreating里面去寫的話會不會覺得太亂沒有條理性,甚至關系都已經分不清了。

      那接着就要想辦法,怎么能讓每個表的關系就只在一個實體關系配置類進行配置。

 

大家也可以加入QQ群進行交流(435498053)。輕松做生意外貿軟件

作者:STONE劉先生 出處:http://www.cnblogs.com/liupeng/

本文版權歸作者和博客園共有,歡迎轉載。未經作者同意下,必須在文章頁面明顯標出原文鏈接及作者,否則保留追究法律責任的權利。
如果您認為這篇文章還不錯或者有所收獲,可以點擊右下角的【推薦】按鈕,因為你的支持是我繼續寫作,分享的最大動力!

      具體的內容往下看:


      上面的內容不知道你看懂了沒有,或者說我說的不清楚,解決辦法就是 我們可以針對每個實體來創建一個配置類或者公用的配置類來完成關系映射的設置。那我們就開始做吧。

一、在Model下面新建了一個配置文件夾

image

二、同時針對之前寫的兩個實體新建了一個配置類

image

三、核心代碼來了

     以上兩步動動鼠標就可以搞定。那具體的代碼就在這里了。我們先來看看用戶信息的映射類。

/// <summary>
    /// 博客用戶信息映射類
    /// </summary>
    public class BlogUserConfiguration : EntityTypeConfiguration<BlogUser>
    {
        public BlogUserConfiguration()
        {
            //設置主鍵
            HasKey(m => m.BlogUserId);
        } 
    }

    簡單吧! 我們把之前OnModelCreating配置的東西就可以移到每個對應的實體中,這個類核心的地方就在於引用了EntityTypeConfiguration那為什么要引用它呢?

    下面的這句是我們第二篇里面寫的代碼,你鼠標放到HasKey查看引用。

modelBuilder.Entity<BlogUser>().HasKey(m => m.BlogUserId);

    調到下面這個

image

    現在知道為什么要引用EntityTypeConfiguration吧! 不引用的話 那我們在構造方法里面的配置就沒法寫了。

四、最后一步

修改DbContext里面的OnModelCreating方法 注釋掉之前的代碼。每個類改成一行代碼實現。

  截圖

五、完成

運行你的代碼 是不是也是出現了之前的正確頁面。

 

大家如果有什么不懂的可以留言,也歡迎大家指導通過進步。

大家也可以加入QQ群進行交流(435498053)。輕松做生意外貿軟件

作者:STONE劉先生 出處:http://www.cnblogs.com/liupeng/

本文版權歸作者和博客園共有,歡迎轉載。未經作者同意下,必須在文章頁面明顯標出原文鏈接及作者,否則保留追究法律責任的權利。
如果您認為這篇文章還不錯或者有所收獲,可以點擊右下角的【推薦】按鈕,因為你的支持是我繼續寫作,分享的最大動力!


免責聲明!

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



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