前言
Model First我們稱之為“模型優先”,這里的模型指的是“ADO.NET Entity Framework Data Model”,此時你的應用並沒有設計相關數據庫,在Visual Studio中我們通過設計對於的數據模型來生成數據庫和數據類。
簡單演示使用過程
第一步:首先還是添加一個簡單的控制台應用程序,然后在此項目上添加一個 ADO.NET 實體數據模型。
第二步:選擇空模型。
第三步:在模型設計視圖中,添加新實體
點擊確定后
第四步:在Order實體上在添加兩個屬性,Customer(訂單所屬客戶)類型為string,OrderDate(訂單下單日期)類型為DateTime
字段類型設置,就在當前字段右鍵===>>>屬性然后找到類型設置即可。
第五步:再添加一個實體OrderDetail訂單詳細,Product產品
第六步:我們添加二者之間的關系,“Order”和“OrderDetail”是一對多的關系,“Order”可以通過“OrderDetails”屬性訪問“OrderDetail”實體,“OrderDetail”可以通過“Order”屬性訪問“Order”實體,並且添加了一個外鍵約束到“OrderDetail”中
點擊確定,添加之后的關系為
到目前為止Model First中的Model已經創建結束,下面就需要生成到數據庫了,在模型設計視圖空白處選擇“根據模型生成到數據庫…”:
並且確保數據庫中已經存在一個空白數據庫
第七步:選擇並添加數據鏈接
然后點擊下一步后,會看到如下界面
然后再點擊完成即可,看到生成的Sql腳本。
再然后,右鍵Sql腳本,點擊執行
最終數據庫的此數據庫多了兩個表
簡單代碼測試
class Program { static void Main(string[] args) { using (var db = new ModelTestContainer()) { Order Order = new Order(); Order.Customer = "aehyok"; Order.OrderDate = DateTime.Now; db.Orders.Add(Order); db.SaveChanges(); IQueryable<Order> Orders = from Orderes in db.Orders select Orderes; foreach (Order O in Orders) { Console.WriteLine("OrderID is {0},Customer is {1}", O.ID, O.Customer); } } Console.ReadLine(); } }
運行效果為
運行了兩次,所以添加兩條數據。
注意:如果我們的模型發生改變,只需要在模型設計視圖修改模型,讓后保存此時實體類就會相應改變,然后選擇“從模型生成到數據庫”重新執行生成的腳本即可。