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. js监听input是第几次click

    我很多问题啊 真的是,然后我有问题就博问啊 ,博问的东西我还是放到博客里面来吧 因为我不怎么看博问 博客的话经常看, 恩 都是一开始我不懂 然后园友来解答的 真的很感谢这些园友 不多说 上代码吧 其实 ...

  2. angular源码分析:$compile服务——指令的编写

    这一期中,我不会分析源码,只是翻译一下"https://docs.angularjs.org/api/ng/service/$compile",当然不是逐字逐句翻译,讲解指令应该如 ...

  3. 用原生javascript实现在页面动态显示时间

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>js ...

  4. 商业智能SAAS走向中小企业

    20多年前,Gartner提出了商业智能的概念,并将其定义为“一类由数据仓库.查询报表.数据分析.数据挖掘等部分组成的,以帮助企业决策的技术及应用”.从技术上讲,商业智能是数据仓库.OLAP和数据挖掘 ...

  5. Android 更新UI的几种方式

    1.Activity的 runOnUiThread textView = (TextView) findViewById( R.id.tv ); new Thread(new Runnable() { ...

  6. 详解tintColor属性

    tintColor属性是iOS7之后新加的一个属性,这个属性定义了一个非默认的着色颜色值,其值的设置会影响到以视图为根视图的整个视图层次结构.它主要是改变控件的颜色,以获取一些有意思的视觉效果. ti ...

  7. 【原】iOS动态性(三) Method Swizzling以及AOP编程:在运行时进行代码注入

    概述 今天我们主要讨论iOS runtime中的一种黑色技术,称为Method Swizzling.字面上理解Method Swizzling可能比较晦涩难懂,毕竟不是中文,不过你可以理解为“移花接木 ...

  8. Linux make: g++: Command not found

    Linux使用make命令时遇到"make: g++: Command not found",这个主要是没有安装gcc-c++.x86_64,如下所示   [root@localh ...

  9. Redhat Server 5.7 安装配置PHP

    PHP的简介 PHP于1994年由Rasmus Lerdorf创建,刚刚开始是Rasmus Lerdorf 为了要维护个人网页而制作的一个简单的用Perl语言编写的程序.这些工具程序用来显示 Rasm ...

  10. 浅析SQL SERVER执行计划中的各类怪相

    在查看执行计划或调优过程中,执行计划里面有些现象总会让人有些疑惑不解: 1:为什么同一条SQL语句有时候会走索引查找,有时候SQL脚本又不走索引查找,反而走全表扫描? 2:同一条SQL语句,查询条件的 ...