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

按照之前两篇文章介绍的,使用kpm来安装ef7使用Sql Server作为存储的实现(你可以在*inux平台使用EntityFramework.InMemery去存储数据)。

安装完成后,可以看到project.json已经改变。

为了更方便的使用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的使用初级教程。

十分钟轻松让你认识Entity Framework 7的更多相关文章

  1. 十分钟轻松让你认识ASP.NET MVC6

    这篇文章说明下如何在普通编辑器下面开发mvc6应用程序. 上篇文章: 十分钟轻松让你认识ASP.NET 5(MVC6) 首先安装mvc6的nuget包: 可以看到在project.json文件中添加了 ...

  2. 十分钟轻松让你认识ASP.NET 5(MVC6)

    ASP.NET 5差不多快发布了.自己也学习了有两个月了.今天给没有接触asp.net 5的同学写一个简单地十分钟教程,教你认识一下asp.net 5. 1.安装kvm 首先,你需要以管理员权限打开c ...

  3. 【shell】十分钟轻松入门;如果没入门,您吐口口水再走吧!

    一.什么是shell? Shell是什么? 1.Shell 是一个程序,Linux默认是用bash. Shell 是一个用 C 语言编写的程序,既是一种命令语言,又是一种程序设计语言,是用户使用Lin ...

  4. ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借

    ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...

  5. (翻译)Entity Framework技巧系列之十 - Tip 37 - 41

    提示37. 怎样进行按条件包含(Conditional Include) 问题 几天前有人在StackOverflow上询问怎样进行按条件包含. 他们打算查询一些实体(比方说Movies),并且希望预 ...

  6. Entity Framework技巧系列之十四 - Tip 56

    提示56. 使用反射提供程序编写一个OData Service 在TechEd我收到一大堆有关将数据作为OData暴露的问题. 到目前为止你大概知道可以使用数据服务与Entity Framework将 ...

  7. Entity Framework技巧系列之十二 - Tip 46 - 50

    提示46. 怎样使用Code-Only排除一个属性  这次是一个真正简单的问题,由StackOverflow上这个问题引出.  问题:  当我们使用Code-Only把一个类的信息告诉Entity F ...

  8. Entity Framework技巧系列之十 - Tip 37 - 41

    提示37. 怎样进行按条件包含(Conditional Include) 问题 几天前有人在StackOverflow上询问怎样进行按条件包含. 他们打算查询一些实体(比方说Movies),并且希望预 ...

  9. ASP.NET开发实战——(十二)ASP.NET MVC 与数据库之Entity Framework Migrations

    在开发数据库应用程序的时候,经常会遇到某些表需要添加字段或者修改类型.新增表等需求,而对于EF Code First来说关注的只有实体类,当需求变更时只需要添加新的实体类或者在实体类中添加.删除.修改 ...

随机推荐

  1. 点击.box跟点击.box.box1

    <!DOCTYPE html> <html> <head> <meta charset='UTF-8'> <title>click</ ...

  2. Bootstrap之栅格系统

    bootstrap 移动优先 中文官网  http://www.bootcss.com/ 1.基本模板 <!DOCTYPE html> <html lang="en&quo ...

  3. 把简单做好也不简单-css水平垂直居中

    44年前我们把人送上月球,但在CSS中我们仍然不能很好实现水平垂直居中. 作者:Icarus 原文链接:http://xdlrt.github.io/2016/12/15/2016-12-15 水平垂 ...

  4. jquery attr()方法

    在JS中设置节点的属性与属性值用到setAttribute(),获得节点的属性与属性值用到getAttribute(),而在jquery中,用一个attr()就可以全部搞定了,赞一个先 ^^ jque ...

  5. asp.net mvc 中 一种简单的 URL 重写

    asp.net mvc 中 一种简单的 URL 重写 Intro 在项目中想增加一个公告的功能,但是又不想直接用默认带的那种路由,感觉好low逼,想弄成那种伪静态化的路由 (别问我为什么不直接静态化, ...

  6. sharepoint2013用场管理员进行文档库的爬网提示"没有权限,拒绝"的解决方法

    爬网提示被拒绝,场管理员明明可以打开那个站点的,我初步怀疑是:环回请求(LoopbackRequest)导致的 解决方法就是修改环回问题.修改注册表 具体操作方法: http://www.c-shar ...

  7. iOS多线程之6.GCD的其他用法

    队列组   让队列里的任务同时执行,当任务都执行完毕时,再以通知的形式告诉程序员.举例,同时下载两张图片,两张图片都下载完了,在合成成一张. 代码: #import "ViewControl ...

  8. 【iOS】Alamofire库在iOS7下设置Head无效的问题

    声明  欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 同样的代码在iOS8下没有问 ...

  9. 安卓学习----使用okHttp(get方式)---下载图片

    一首先下载Jar包 https://github.com/square/okhttp 如果使用android studio只需要加入依赖 compile 'com.squareup.okhttp3:o ...

  10. SqlHelper类

    using System; using System.Collections; using System.Collections.Generic; using System.Data; using S ...