十分鐘輕鬆讓你認識Entity Framework 7

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的包。學習

image

按照以前兩篇文章介紹的,使用kpm來安裝ef7使用Sql Server做爲存儲的實現(你能夠在*inux平臺使用EntityFramework.InMemery去存儲數據)。spa

安裝完成後,能夠看到project.json已經改變。3d

爲了更方便的使用EF,EF團隊給咱們開發了一個命令包,你能夠安裝這個命令包來輕鬆建立數據訪問的代碼。下面的命令來安裝EntityFramework.Commands

image

 

image

 

2.使用命令來生成代碼。

這塊兒算是比較酷的,相對於以前版本的.NET,這一點兒算是很好的學習別的語言亮點。

下面咱們須要編輯一下project.json來添加一個命令,用來經過ef生成代碼。

image

和k web相似,咱們能夠經過 k ef來建立DbContent文件和對應的SQL語句。

不過先經過 k ef來看一個神奇的事情:

image

能夠看到k ef對應的有三個子命令,context和migration以及幫助命令。

context命令是沒法建立DbContext的,因此須要手動建立一個DbContext,MyDbContext.cs文件。

image

接下是執行migration命令,使用migration來生成code-first的代碼。

執行k ef migration add 「initial」命令。

image

查看代碼文件件,能夠看到新生成了以下文件:

image

 

最後咱們須要經過apply子命令,來生成數據庫中對應的表:

image

 

執行:k ef migration apply

 

image

數據庫中對應的表自動建立成功:

image

接下來就可使用EF進行數據訪問了。

3.EF集成到Dependency Injection。。

下面須要作的就是把EF相關的內容注入到.NET5的默認容器中,以方便構造函數注入。

修改project.json以下:

image

 

4.修改Controller和添加Views文件夾。

接下來就能夠修改Controller和添加Views了。

HomeController文件:

image

 

對應的View文件:

image\

 

最後使用K web運行應用程序:

image

 

由於表中沒有數據,因此count爲0。致此就完成了EF的使用初級教程。大笑

相關文章
相關標籤/搜索