国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

嘗試 Entity Framework POCO功能+Code First

2019-11-08 18:30:16
字體:
來源:轉載
供稿:網友

第一步:創建WinFrom項目(只是用來測試)

第二步:設計實體模型以及關聯

在項目上 右擊→添加新建項目→選擇數據→Ado.Net實體模型

如圖所示:

選擇 創建 空模型 ,如下圖所示:

設計模型,添加屬性以及添加表的關聯。

在實體設計窗口中,右擊→屬性→代碼生成策略=>無  ,這一步就是去掉EF自動代碼生成實體類以及EF數據訪問上下文網關ObjectContext等。如下圖所示:

然后,在模型設計器里添加兩個實體Departmetn,Car,復雜類型Wheel。并添加實體的關聯,而且Department和Car是一對多的關系。當然下圖所示在Car中我添加了一個復雜類型Wheel類型。

最終如下圖所示:

第三步:根據模型生成數據庫(codefirst)

在模型設計器里面 右擊→根據模型生成數據庫 →選擇數據庫連接→在生成的SQL代碼文件并默認在vs2010上打開,右擊執行SQL

第四步:根據設計好的實體編寫對應的實體類

分別編寫Department類、Wheel類、Car類。屬性的名字要跟模型上的屬性一樣。 

Department類 代碼如下:

Wheel作為Car類中的一個復雜類型,則應該首先定義Wheel再定義Car。 代碼如下:

Car類 代碼如下:

第五步:定義自己的數據庫訪問實體上下文 ObjectContext【它是封裝了訪問數據庫的網管,所有的增刪查改都通過此接口對數據庫進行操作】

添加一個自定義類要繼承ObjectContext,添加實體對應的ObjectSet集合,并在默認構造函數中初始化連接等操作,只需要調用父類的構造函數即可,并在構造函數中為實體集合初始化【調用CreateObjectSet <T>()方法】。

代碼如下所示:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data.Objects;namespace EFPoco{    public class CompanyContext : ObjectContext    {        //EF生成的連接字符串        PRivate static string constr = System.Configuration.ConfigurationManager.ConnectionStrings["CompanyContainer"].ConnectionString;        public CompanyContext()            : base(constr, "CompanyContainer")//第一個參數是EF的鏈接字符串的Value,第二個是實體容器的名稱,可以在實體設計器模型上右擊屬性里面找到,默認連接字符串的KEY也是容器的名字        {            departmentSet = CreateObjectSet<Department>();            carSet = CreateObjectSet<Car>();        }        private ObjectSet<Department> departmentSet;//定義Department表對應的ObjectSet的集合        public ObjectSet<Department> DepartmentSet        {            get { return departmentSet; }            set { departmentSet = value; }        }        private ObjectSet<Car> carSet;//定義Car表對應的ObjectSet的集合        public ObjectSet<Car> CarSet        {            get { return carSet; }            set { carSet = value; }        }    }}

第六步:使用設計好的實體上下文查詢表的數據

在Form窗體上,添加一個按鈕和一個RichTextBox一個DataGridView。編寫代碼如下:

using (CompanyContext cc = new CompanyContext())            {                var result = from c in cc.CarSet                             select c;                this.dataGridView1.DataSource = result.AsEnumerable<Car>();                foreach (var m in cc.CarSet)                {                    this.richTextBox1.Text += string.Format("name:{0}| size:{1}/r/n", m.Wheel.Name, m.Wheel.Size);                }            }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 孟村| 巢湖市| 仁怀市| 会同县| 建水县| 周至县| 花垣县| 景东| 光山县| 武冈市| 收藏| 积石山| 河曲县| 邯郸县| 靖州| 凯里市| 紫金县| 辽源市| 共和县| 北海市| 霍城县| 济源市| 宕昌县| 都昌县| 共和县| 黄浦区| 东阿县| 临夏市| 门源| 玉田县| 临江市| 永州市| 富平县| 深泽县| 武川县| 健康| 蓝山县| 稷山县| 潮州市| 杭锦旗| 菏泽市|