常常聽到Code First但一直以來都沒有實作,嘗試一下就遇到了不少問題,所以小小的紀錄一下。
Step1. 首先先從安裝Nuget套件開始,請使用"套件管理器主控台"(工具>NuGet封裝管理員>套件管理器主控台)。在套件管理主控台輸入以下三個套件:
Install-Package MySql.Data -Version 6.9.9
Install-Package MySql.Web -Version 6.9.9
Install-Package MySql.Data.Entity -Version 6.9.9
由於目前正式版本為6.9.9,因此以這個版本為範例,最新版本可以到www.nuget.org查詢。(MySql.Data、MySql.Web、MySql.Data.Entity)
安裝完成後web.config也會順便幫我們設定好,之後只需要設定connectionString非常方便,前置作業到這邊算是初步完成。
Step2. 建立ADO.NET實體資料模型,這邊就叫他CodeFirstModel好了。
選擇模型的時候選擇第三個『空的Code First模型』,按下完成就可以看到建立好的模型了。
Step3. 接下來要來建立期望出現的TABLE,建立新的Model,就用老掉牙的Product為例。
裡面建立兩個屬性ID跟Name當作欄位。
Step4. 回到Step2建立的實體資料模型CodeFirstModel,加入public DbSet<Product> Products { get; set; }。
到這裡基本上都完成了!只差還沒執行叫他開始建立。
Step5. 建立Controller在Action內加上
CodeFirstModel model = new CodeFirstModel();
var c = model.Products.Count();
Step6. 修改連線字串,在<connectionStrings>標籤內加上連線字串。
<add name="CodeFirstModel" connectionString="server=localhost;user id=root;password=你的密碼;persistsecurityinfo=True;database=之後DB名稱" providerName="MySql.Data.MySqlClient"/>
Step7. 建置、執行成功後我們可以開啟MySQL Workench看看,就可以看到新的DB建出來了(我DB叫做codefirst)。
以上是簡易的Code First,有誤還請多多提點指教。