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的使用初级教程。