Entity Framework 4.1/4.3 之二(前輩Entity Framework4.0)

來源:互聯網
上載者:User

 

Entity Framework 4.1/4.3 之二(前輩Entity Framework4.0)

 

  大家好,上個星期太忙了,忙著做定價子系統,沒有時間來寫Entity Framework 4.1 之二文章,以至於之前的思路突然間斷了。剛才泡了杯tea細細的想了想,決定從前輩講起。接下來我來講講Entity Framework 4.0的執行個體,然後慢慢過度到Entity Framework 4.1的執行個體。這樣對比較強些。

 

      寒暄過後,我們開工。

      一,先建立解決方案 (名稱:EFProject)

            我習慣建立控制台應用程式。然後建立好多層。有資料層,介面層,業務層,Model層,Helper層,展示層等等。今天為了講解方便,我直接就調用資料層了。

            1、資料層開建 (先建 Entity Data Model (EDM),在之一裡有介紹,它是資料模型與資料庫中表的因映射)

                 右擊你要存放EDM的檔案(我的檔案夾叫DBEntity),添加 -> 建立項 ,選擇ADO.NET 實體資料模型,命名為EFEntity,點擊確定,歐了,EDM建立完畢。

                 切記要命名啊,命我為EFEntity,然點擊“添加”,會出現如的“實體資料模型嚮導”:

                    點擊下一步在新出現的頁面中,點擊“建立連線按鍵”:會出現 串連屬性 設定視窗,在這裡將設定EDM映射的資料庫。

                        點擊確定後,出現實體資料模型嚮導,如:

                          記得在“將App.Config 中的實體串連設定另存新檔(S)” 下的文字框內也改為"EFEntity"。其實際的做用是在App.config中會增加一條以EFEntity命名的資料庫連接字串。點擊 “完成”,如出。

                               

                              選好要映射的表,這裡要重點強調一下" 模型命名空間(M):"  可以到在圖中我填的是EFEntity,這樣是不對的,因為EDM的名稱已經叫做EFEntty了,所以相對應該的映射模型的命名空間就不能再叫EFEntity,否則會出現命名空間衝突。這裡我們改成EFModel。點擊完成,我們的EDM模型就真正的完成了。是不是很簡單。別光看,動手行動起來吧。

                      

                       等等,讓我們來看看產生的EDM長什麼樣吧,雙擊EFEntity.edmx,會進入到模型瀏覽器中。如所示:

                          

                    這裡有 TestEntity和TestEntitySchool 兩個模型,分別是對資料庫中TestEntity和TestEntity

 

               2、好了,有了EDM了,我們是時候操作它來對資料庫做增刪改查了。動手

 

View Code

 1 public List<TestEntity> GetTestEntity() 2         { 3             using (EFEntity db = new EFEntity()) 4             { 5              6                 var query = from m in db.TestEntity 7                             select m; 8  9                 if (query != null)10                     return query.ToList();11                 else12                     return null;13             }14         }

 

            這個方法是從TestEntity 表中擷取所有的資料,EFEntity 就是我們之前定義的edm,TestEntity就是對資料庫TestEntity的映射。

            我們沒有專門建立一個Model來做為TestEntity載體,而是直接用模型TestEntity本身來做為我們的載體,這樣做有好處也有壞處,如果項目工期短的話,功能本身非常單一併且相對簡單的話,不妨可以考慮這麼做,比如,提供學校列表,老師列表等等單一功能的情況下較好,如果設及到多表關聯的話,這樣做非常不好。 

            這種做法沒有實現資料與展示分離,而且擴充起來不方便。所以常用的做法是在建立一上Model模型,比如我會建立一個TestEntityM來做為TestEntity的表一。當然命名可以自己去命名。

 

             大家先別顧忌這種上面說的,先動手練習一下。示列中的代碼顯示了“查的功能”,我拋磚引玉一下,提代以下幾行代碼,大家試著根據這幾行代碼來寫寫“新增”和“編輯的”功能。至於輸出,你可以通過控制台來Console.WriteLine方式輸出,也可以通過網頁的行式顯示。

 

             提示代碼如下:

               (1) 

View Code

 1 public int EditEntity(TestEntity tsEntity) 2         { 3             int result = 0; 4             using (EFEntity db = new EFEntity()) 5             { 6                 var query = (from m in db.TestEntity 7                              where m.email == tsEntity.email 8                              select m).FirstOrDefault(); 9 10                 if (query == null)11                 {12                     //這裡是新增13                     query = new TestEntity();14                     //15                     //  這裡你寫你的代碼16                     //17                     db.AddToTestEntity(query);18                     result = db.SaveChanges();19                 }20                 else21                 {22                     //好了,你來寫編輯23                 }24             }25 26             return result;27         }

 

            

             也不知道您有沒有去練習。實踐了的朋友們,留個言吧。

             說實話,寫部落格真不是件容易的事,寫系列部落格更不是件容易的事。堅持,得堅持啊。

             好了,就寫到這裡,我會對自己寫的部落格不斷的更新,以便大家更容易理解和閱讀。今天就寫到這裡了,累了。我是jerry百靈,文章中有什麼不對的地方,不吝指教。

 

             補充:本文講了EF4.1的前輩,也就是EF4.0版,它是伴隨著.Net Framework 3.5  出現的。之所以我們要採用ORM方式來編程,是為了更好的將注意力集中在編程上,而不用分散到資料庫上。當然早期的EF,也就是EF4.0 之前,我們還需要先設計資料庫,設計表,但是在EF4.1 裡,推出一Code First (即代碼先行),我們可以先構建對象及對象間關係。這裡的對象你把它理解成資料庫中的表這樣更好理解些,事實上它也卻實是對錶的映射。把精力集中在業務解決上,這樣不是更好嗎?

 

百靈註:本文著作權由百靈和部落格園共同所有,轉載請註明出處。
助人等於自助!  mbailing@163.com

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.