EF的學習

來源:互聯網
上載者:User

標籤:

               今天學習了ORM中的Entity FromWork架構,其實之前看到orm架構,感覺好高大上啊,還沒準備去瞭解它那,今天我們就學習了這個,其實ORM架構分為兩部分,Entity FromWork架構和Nhibernate;一部分是用於系統與資料庫之間的操作互動和實體類與SQL語句之間的轉換。另一部分為ORM自動產生工具,用於實體類,前台HTML代碼,商務邏輯調用代碼的自動產生。但是我們目前僅僅學習了Entity FromWork架構,下面就簡單的總結一下它的建構。

         一.從資料庫映射C#項目

         添加一個ADO.NET實體資料模型,然後我們根據嚮導添加完成。

         

         下面來看下他們的內容,需要注意的有四部分,我們需要注意兩部分,分別為StudentContext.cs和Register.cs,Student.cs,在這裡說一下串連的境像:

        

      

       

          在這裡我麼可以看到StudentEntities繼承了DbContext的串連,而DbContext存在一個方法串連我們的資料庫,參數中存在一個屬性ConnectionString,關係就是這樣的。

           

           這裡就是一個自動對應成的實體類,和資料庫中的欄位是一樣的。

           二.現在C#中建立實體,然後映射到資料庫

           

           仍然不變的使我們要添加一個ADO.NET實體資料模型,然後建立一個空模型即可,然後添加實體,設定關係以及屬性的類型,最後選擇根據模型產生資料庫,最重要的是需要執行一個“執行”即可,這個是不能忘記的,然後我們即可把C#中的實體映射到我們的資料庫中。

            

           在這裡,我們可以好奇為什麼它們沒有關係怎麼可以映射那,其實還是建立了SQL語句,上面就是在User.edmx.sql中尋找到的,嘿嘿,所以還不是很神奇的。被我們發現啦。在這裡需要區別的是我們從資料庫映射時間建立的是StudentEntities,而從C#映射到資料庫建立的是UserContainer,就是Entities與Container的不同,另外在建立C#映射到資料庫還建立了一個.edmx.sql,這些都是我們可以區分的地方,這就是我們建立的EF模型。

           三.EF中增刪改查的語句:

        static void Main(string[] args)        {            StudentEntities entities = new StudentEntities();       //初始化對象            Register register = new Register();            #region 增加            //register.UserName = "張三";            //register.Pwd = "123";            //register.Sex = "男";            //register.Phone = "123456";            //register.Age = "20";            //register.Address = "河南鄭州";            //entities.Register.Add(register);            //添加一個集合使用Add            //entities.SaveChanges();                      //儲存            #endregion            #region 刪除            //Register r = entities.Register.Where(i=>i.Id==39).SingleOrDefault();       //在這裡需要注意的是Lambda運算式的i屬性Register,它是一個集合,所以需要它.出來他的id項            //entities.Register.Remove(r);          //刪除使用的是Remove            //entities.SaveChanges();            #endregion            #region 修改            //Register rr = entities.Register.Where(i => i.Id == 40).SingleOrDefault();     //修改時間記得先查詢要修改的條件            //rr.UserName = "zhangsan";        //在這裡需要注意的是接受的對象            //rr.Pwd = "456";            //rr.Sex = "女";            //rr.Phone = "123456789";            //rr.Age = "20";            //rr.Address = "北京";            //entities.SaveChanges();             //儲存            #endregion            #region 查詢            //Register rrr = entities.Register.Where(i => i.Id == 41).SingleOrDefault();            //Console.WriteLine("{0},{1},{2}",rrr.Id,rrr.UserName,rrr.Pwd);            //Register rrr = entities.Register.SelectMany(i=>i.Id==40&&i.Id==41).SelectMany();            #endregion            Console.WriteLine("ok");            Console.ReadKey();        }

         嘿嘿,這就是我們在EF模型中對資料庫操作的語句,需要注意的是,我們在執行完後記得儲存一下資料,就是目前狀態記得儲存,這個是容易忘記的,另外在這裡參數為Lambda運算式時間要準確使用。

          四.實體中存在約束執行的語句

        static void Main(string[] args)        {            UserContainer container = new UserContainer();             Tea t = new Tea();            //t.ID = 1;            t.Name = "lisi";            t.Pwd = "123456";            t.Sid = 1;            Stu stu = new Stu();            //stu.ID = 1;            stu.Name = "zhangsan";            stu.Pwd = "123";            container.Tea.Add(t);            container.Stu.Add(stu);            container.SaveChanges();            Console.WriteLine("ok");            Console.ReadKey();        }

                 存在外鍵關係的我們需要注意的是,當我們在添加一個表的資料時,另外一個外鍵的屬性也需啊喲賦值,如果我們設定Id的屬性為自動成長,那麼我們設定的外鍵的值則每次自動成長,如果設定不變,則只需要不填寫即可。

           其實這個EF模型的總結我感覺我們學習的不多,但是不知道從哪開始總結,也向更深入的瞭解一下,接下來還是自己尋找吧,好啦,就寫到這裡,嘿嘿。 

EF的學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.