一、手動配置連接配接資料庫(CF)
以前ADO各種conn加cmd就完成連接配接查詢了,EF呢~得配置。配置有兩種方法,一種是全自動,一種是全手動。
EF有一個基本概念,CODE FIRST和DB FIRST(??不知道寫對沒)以及MODEL FIRST,我認為差別就是:你完全建好了資料庫就DF,你還沒想好資料庫的設計就CF,CF意思就是你不用設計資料庫了,你想使用的變量等等在Models裡建好實體類,然後資料庫建立Table和字段都是配置後端操作過程中完成了,相當。。。省心。。吧。。。
先記錄一下全手動配置
建立一個空白的MVC工程:命名為test
1、引用EntityFramework
去NuGet搜尋下載下傳EntityFramework,引用裡就有這兩個東西了
2、建實體,Models
Model名可以簡單了解為資料庫對應的表名,Model裡的内容就是表的各個字段。在Models下建一個Testable.cs
3、建資料上下文
簡單的了解,EF上下文更像是一個連接配接的實體類似于把ADO裡的連接配接資料庫的語句封裝起來,在Models下建Dbcontest.cs
此處一定要using System.Data.Entity 因為 Dbcontext是來自于EF的。
4、配置連接配接資訊
上面的DBcontest是從配置資訊裡先讀取資料庫連接配接字元串,是以需要配置根目錄下的Web.config
5、生成控制器
可以自動生成也可以手動寫,這裡介紹自動的方法
在Controllers上右鍵—添加—控制器
接着選我們剛剛建好的模型類和資料上下文
等待幾秒鐘......就自動生成了對應的Controller和View
6、RouteConfig配置測試
7、生成的頁面能看到下面這個就算是成功了~
可以看到Testtables這個表裡什麼都沒有
點Creat New
在文本框輸入測試内容後傳回清單就看到資料表的内容了~
這時候再去資料庫看一下,已經建立好了表,剛才建立的内容也應進入了資料表
再看一下字段的資料類型(屬性)全是自動生成的
*****如果對字段的屬性有特别需要,比如指定主鍵和不同的資料類型,就需要先在實體類裡用[]來進行注釋
并且需要
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
如果有資料庫了,資料庫有表有資料了,那EF要如何配置呢,那麼請看第二種方式。
二、手動配置的DF連接配接的方式
接下來說手動配置以DF為主的模式,要用EF去操作已存在的資料庫,就得得使用這種方式,其過程和CF差不多隻是略有一些不一樣。
1、先在資料庫建一個名Testtable2的表
2、在Models裡建一個實體類 Testtable2
注意[Tabel"Testtable2"]的意思就是指定資料庫的Testtable2這張表。
3.在資料庫上下文的裡加入以下函數
此字元串的含義是啟動連接配接時屏蔽效驗,CF模式啟動時會效驗__MigrationHistory資料表,想用DF模式效驗就會出錯,摘抄自連結
4.自動生成Controller和View
5.運作
就能讀出來testtable2的表了
6.報錯
在我操作的配置過的EF裡遇到過兩種錯誤:
①這種錯誤就是先模拟運作一下,再進行控制器的自動生成就行了。
②是報錯
The model backing the 'XXX' context has changed since the database was created. Consider using Code First Migrations to update the database(http://go.microsoft.com/fwlink/?LinkId=238269).
意思其實就是EF在CF模式下需要遷移資料庫,用 (二).3的步驟可以解決,如果還有問題可以參考這篇文章
三、自動配置EF方法
自動配置就一個字,快。
下面上步驟
1、建立實體資料模型
選EF設計器
點建立連接配接
填自己的伺服器資訊
紅圈處可更改自己的資料上下文實體
選需要的表
然後就……全自動生成了我們手動生成的所有的實體模型
2、接着再自動生成Controller和View
3、測試
沒錯,自動配置就是這麼的快,但從原理上講手動設定更直覺的明白每個地方的構造是幹什麼的,也可以進行靈活的設定及更改,友善最終的釋出部署。