十分鍾輕松讓你認識Entity Framework 7


EF7不是在EF6上更新,而是完全重寫了。它完全支持.NET Core runtime,也就是說以后你可以在Mac或者是Linux機器上使用EF了。微笑

https://github.com/nicholaspei/OrchardNoCMS  我還在調研使用哪個ORM或者Micro ORM。Massive或者Dapper都不太適合,因為他們都依賴於System.Data,所以跨平台是個問題。

目前准備先使用EF作為一個實現,底層是一個很高的抽象接口,以后如果有合適的輕量級ORM,可以再替換。

回到正題,EF7比較大的變化:

a.只支持Code-First或者Code,不再支持圖形界面的生成。

b.支持關系型數據庫。

c.跨平台。

 

1.開始安裝EF7的包。

image

按照之前兩篇文章介紹的,使用kpm來安裝ef7使用Sql Server作為存儲的實現(你可以在*inux平台使用EntityFramework.InMemery去存儲數據)。

安裝完成后,可以看到project.json已經改變。

為了更方便的使用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的使用初級教程。大笑


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM