首先,我個人覺得這(model first 即模型優先)是一個雞肋似的功能。當贊揚著他的強大的功能的同時,你也會覺得這個功能好像是不是不怎麼需要,也很少使用。
1.右鍵你的項目,選擇“添加”》“新建項” ,在彈出的對話框中選擇“數據”,“ADO.NET實體數據模型”,點擊“添加”。如圖3-1
如3-1
2.選擇“空EF設計器模型”,點擊“完成”。如圖3-2
圖3-2
3.在“設計器”中右鍵,選擇“新增實體”,添加實體名稱等數據項,點擊確定。如圖3-3
圖3-3
4,.在“Student”實體的屬性上右鍵,依次點擊“新增”》“標量屬性”,修改屬性名為“Name”,右鍵“Name”,點擊“屬性”可彈出屬性框,設置相應屬性值。據此方法,依次添加“Age”,“Detail”字段。如圖3-4
圖3-4
5.實體設計完成後,右鍵設計器空白處,選擇"根據模型生成數據庫"。在彈出的對話框中,可以選擇“新建連接”也可以選擇一個已經生成的連接,然後點擊下一步。如圖3-5
圖3-5
6.到此會生成一個.sql的文件,打開文件,右鍵空白處,點擊“執行”。如圖3-6.(如果無法執行,可復制sql內容,在數據庫中直接執行)如圖3-6
圖3-6
7.成型成功後,數據庫中的表就已經生成了。下面演示的是新增數據到數據庫中,其實和其他的方式一樣。
1 using (Model1Container1 db = new Model1Container1()) 2 { 3 for (int i = 0; i < 5; i++) 4 { 5 Student s1 = new Student(); 6 s1.Name = "studnet" + i; 7 s1.Age = i; 8 s1.Detail = "detail" + i; 9 10 db.Students.Add(s1); 11 } 12 13 int count = db.SaveChanges(); 14 15 Console.WriteLine("成功插入 {0} 條數據!",5); 16 17 Console.WriteLine("name \t\t age"); 18 19 foreach (var item in db.Students) 20 { 21 Console.WriteLine("{0} \t {1}", item.Name, item.Age); 22 } 23 }View Code
輸出:
圖3-7
8.其實“model first”的功能之強大元不止這些,比如“表關系”、“導航屬性”、“屬性限制”等等,都是可以通過它來完成的。不過“model first”使用的人貌似不多,可能正是因為這樣的原因。在ef7中,已經把這個功能移除了。