程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> entityframework學習筆記--002-創建模型的幾種方式,entityframework

entityframework學習筆記--002-創建模型的幾種方式,entityframework

編輯:關於.NET

entityframework學習筆記--002-創建模型的幾種方式,entityframework


1.實體框架緊緊地和Visual Studio集成在一起,為了在你的應用程序中使用實體框架,我們增加一個ADO.NET實體數據框架到你的項目。方法如下:

右鍵你的項目,然後選擇 ➤New Item(新建項)。在彈出的對話框中(如圖1-4),選擇Data(數據)模板下邊的ADO.NET Entity Date Model(實體數據模型)模板。然後單擊Add(增加)打開數據模型創建導向。

圖1-4 向項目中添加實體數據模型

2.在彈出的對話框中會有4個選項,1 來自數據庫的EF設計器,2 空的EF設計器模型,3 空的CodeFirst模型,4 來自數據庫的Code First。其中1和2算是一種方式,是使用可視化的ef設計器設計實體模型;3和4算是一種方式,是使用代碼的方式設計實體模型。如下圖1-5。本例中我所使用得數據庫的表結構如圖1-5-2

圖1-5

圖1-5-2

3.這其中初學者使用最多的也就是第一種了“來自數據庫的EF設計器”,我們選擇第一種,點擊“下一步”,在彈出的對話框中選擇“新建連接”,然後新建一個數據庫連接。如圖1-6.

圖1-6

4.然後在彈出的對話框中選擇“是,在連接字符串中包含敏感數據”,點擊“下一步”。如圖1-7

圖1-7

5.選擇所需要的數據庫和表,選擇“確定單復數形式”(這個是為了生成實體是去掉復數形式,比如我們的表叫做Students,生成的實體應該叫做Student,叫做Students就不合適了吧。),然後點擊“完成”。如圖1-8

 

圖1-8

 6.生成的ef實體模型視圖就如1-9所示了,我們可以看到表之間的關系也已經被映射了進來,為此ef設計器還為我們生成了各自的導航屬性,通過導航屬性可以非常方便的訪問關聯屬性。

圖1-9

7.下面是一個簡單的代碼示例。我們可以使用模型設計器為我們生成的數據訪問類“myefrecipesEntities”來進行數據庫的訪問操作。“myefrecipesEntities”繼承自“DbContext”,DbContext是ef數據操作的核心。

static void Main(string[] args)
        {
            using (myefrecipesEntities db = new myefrecipesEntities())
            {
                Class c1 = new Class() { Name = "class1" };
                Student s1 = new Student() { Name = "rj", Age = 18, Class = c1 };

                db.Students.Add(s1);

                int i = db.SaveChanges();

                foreach (var item in db.Students)
                {
                    Console.WriteLine("name \t age \t class");
                    Console.WriteLine("{0} \t {1} \t {2}",item.Name,item.Age,item.Class.Name);
                }
            }

            Console.ReadKey();
        }
View Code

代碼輸出:

 8.本篇先到這裡吧,還有幾種生成實體模型的方式以後再介紹。總之,無論使用database first,model first,code first,我們最終要操作的都是其中射影的實體,例如本例中的Student,Class。其中的實體可以像使用程序中的其他類型一樣,這樣極大的提供了方便,同時也提高了來發的效率。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved