EF7不是在EF6上更新,而是徹底重寫了。它徹底支持.NET Core runtime,也就是說之後你能夠在Mac或者是Linux機器上使用EF了。git
https://github.com/nicholaspei/OrchardNoCMS 我還在調研使用哪一個ORM或者Micro ORM。Massive或者Dapper都不太適合,由於他們都依賴於System.Data,因此跨平臺是個問題。github
目前準備先使用EF做爲一個實現,底層是一個很高的抽象接口,之後若是有合適的輕量級ORM,能夠再替換。web
回到正題,EF7比較大的變化:數據庫
a.只支持Code-First或者Code,再也不支持圖形界面的生成。json
b.支持關係型數據庫。app
c.跨平臺。函數
1.開始安裝EF7的包。學習
按照以前兩篇文章介紹的,使用kpm來安裝ef7使用Sql Server做爲存儲的實現(你能夠在*inux平臺使用EntityFramework.InMemery去存儲數據)。spa
安裝完成後,能夠看到project.json已經改變。3d
爲了更方便的使用EF,EF團隊給咱們開發了一個命令包,你能夠安裝這個命令包來輕鬆建立數據訪問的代碼。下面的命令來安裝EntityFramework.Commands
2.使用命令來生成代碼。
這塊兒算是比較酷的,相對於以前版本的.NET,這一點兒算是很好的學習別的語言亮點。
下面咱們須要編輯一下project.json來添加一個命令,用來經過ef生成代碼。
和k web相似,咱們能夠經過 k ef來建立DbContent文件和對應的SQL語句。
不過先經過 k ef來看一個神奇的事情:
能夠看到k ef對應的有三個子命令,context和migration以及幫助命令。
context命令是沒法建立DbContext的,因此須要手動建立一個DbContext,MyDbContext.cs文件。
接下是執行migration命令,使用migration來生成code-first的代碼。
執行k ef migration add 「initial」命令。
查看代碼文件件,能夠看到新生成了以下文件:
最後咱們須要經過apply子命令,來生成數據庫中對應的表:
執行:k ef migration apply
數據庫中對應的表自動建立成功:
接下來就可使用EF進行數據訪問了。
3.EF集成到Dependency Injection。。
下面須要作的就是把EF相關的內容注入到.NET5的默認容器中,以方便構造函數注入。
修改project.json以下:
4.修改Controller和添加Views文件夾。
接下來就能夠修改Controller和添加Views了。
HomeController文件:
對應的View文件:
最後使用K web運行應用程序:
由於表中沒有數據,因此count爲0。致此就完成了EF的使用初級教程。