前言
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();
}
}
運行效果為

運行了兩次,所以添加兩條數據。
注意:如果我們的模型發生改變,只需要在模型設計視圖修改模型,讓后保存此時實體類就會相應改變,然后選擇“從模型生成到數據庫”重新執行生成的腳本即可。
