EntityFramework6 快速入门教程

不得不说EF在国内实在是太小众,相关的技术文章真实屈指可数,而且很多文章都很旧了,里面使用的版本跟如今的EF6差别还是比较大。我刚开始弄这个的时候真是绕了不少弯路。

学习EF还是需要一些条件,使用EF并不意味着你就可以完全不跟数据库打交道了,要学好EF,数据库中的什么主键、外键、索引、SQL等你还是要懂,另外EF中将大量使用LINQ来进行数据查询,数据模型中还将涉及到特性与泛型,所以对于C#的基础要求还比较高。

在我看来EF并不适合初学者使用,虽然微软最初设计EF的初衷就是让程序员摆脱SQL,即使不懂SQL也能完成对数据库的操作,不过从最终的效果来看,EF不仅没有使得问题变得简单反倒更复杂了。为了不写SQL,微软创建了一种和SQL长得非常像的LINQ,为了能让EF创建数据表,微软又将数据库中的各种约束、数据类型封装成了一个个特性。所以如果没有良好的数据库基础你是根本学不了的。

由于EF是通过代码来生成SQL供数据库执行,所以不管怎么优化,相对于原生SQL,性能肯定都比较差。EF在中小型的项目中可能还行,在大型项目,特别是高并发的项目中使用EF,我估计用不了多久数据库就会崩溃。

以上说了EF的那么多的不是,是不是EF一点用处都没有了呢?EF最大的优点就是快,这个快是指开发迅速,只要你熟悉了EF,只需要写很少的代码,就能完成以前需要写很多行代码才能完成的数据库交互。所以使用EF来应付客户就再适合不过了,如果你要我在我自己的项目中使用,我是绝对不会用这东西的。

PS:如果想不牺牲性能又要保持EF开发的快捷,可以尝试一下如今很火的NOSQL数据库,例如Mongodb。我觉得如今NOSQL数据库的出现,使得EF的这类型的框架,真的没有更多存在的价值了。

书籍推荐

如今关于EF6的书真是少,只有一本叫Entity Framework 6 Recipes。不过没有中文版,如果想系统学习的话建议看看这位仁兄的文章《Entity Framework 6 Recipes》中文翻译系列

教程目录

  1. 初识EntityFramework6
  2. 使用EntityFramework6连接MySQL
  3. 使用EntityFramework6完成增删查改和事务
  4. 在EntityFramework6中执行SQL语句

EntityFramework6 快速入门教程的更多相关文章

  1. EntityFramework6 快速入门教程【转】

    https://www.cnblogs.com/wujingtao/p/5401113.html 不得不说EF在国内实在是太小众,相关的技术文章真实屈指可数,而且很多文章都很旧了,里面使用的版本跟如今 ...

  2. 专为设计师而写的GitHub快速入门教程

    专为设计师而写的GitHub快速入门教程 来源: 伯乐在线 作者:Kevin Li     原文出处: Kevin Li 在互联网行业工作的想必都多多少少听说过GitHub的大名,除了是最大的开源项目 ...

  3. Apple Watch开发快速入门教程

     Apple Watch开发快速入门教程  试读下载地址:http://pan.baidu.com/s/1eQ8JdR0 介绍:苹果为Watch提供全新的开发框架WatchKit.本教程是国内第一本A ...

  4. 指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程

    指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程 1.4.2  指示灯组 指示灯组的放大图如图1.5所示. 图1.5  指示灯组 各个指示灯对应的功能如下: q  RX:对应于0号端口, ...

  5. 游戏控制杆OUYA游戏开发快速入门教程

    游戏控制杆OUYA游戏开发快速入门教程 1.2.2  游戏控制杆 游戏控制杆各个角度的视图,如图1-4所示,它的硬件规格是本文选自OUYA游戏开发快速入门教程大学霸: 图1-4  游戏控制杆各个角度的 ...

  6. Query 快速入门教程

    Query 快速入门教程 http://www.365mini.com/page/jquery-quickstart.htm#what_is_jquery jquery常用方法及使用示例汇总 http ...

  7. Realm for Android快速入门教程

    介绍 如果你关注安卓开发的最新趋势,你可能已经听说过Realm.Realm是一个可以替代SQLite以及ORMlibraries的轻量级数据库. 相比SQLite,Realm更快并且具有很多现代数据库 ...

  8. CMake快速入门教程-实战

    http://www.ibm.com/developerworks/cn/linux/l-cn-cmake/ http://blog.csdn.net/dbzhang800/article/detai ...

  9. .NET Core 快速入门教程

    .NET Core 快速学习.入门系列教程.这个入门系列教程主要跟大家聊聊.NET Core的前世今生,以及Windows.Linux(CentOS.Ubuntu)基础开发环境的搭建.第一个.NET ...

随机推荐

  1. ASP.NET 取得 Uri 各项属性值

    Uri uri = new Uri("http://www.yoercn.com/aboutus/idea.html");string Host = uri.Host;       ...

  2. ActiveReports 报表应用教程 (2)---清单类报表

    在大多报表系统中都有清单类报表的身影,比如:客户清单.商品信息清单.设备清单.物品采购清单.记账凭证.货品发货清单.员工清单等等.清单类报表看视乎比较简单,但是,由清单类报表演变而来的报表类型却十分丰 ...

  3. maven oracle jdbc jar

    1.problem describe: when your dependency jar about oracle use code like this: <!-- oracle-connect ...

  4. 【poj 3080】Blue Jeans(字符串--KMP+暴力枚举+剪枝)

    题意:求n个串的字典序最小的最长公共子串. 解法:枚举第一个串的子串,与剩下的n-1个串KMP匹配,判断是否有这样的公共子串.从大长度开始枚举,找到了就break挺快的.而且KMP的作用就是匹配子串, ...

  5. centos/rhel 6.5下rabbitmq安装(最简单方便的方式)

    wget -c http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.x86_64.r ...

  6. spring扫描classpath下特定package,并加载具有特定注解的接口

    spring扫描classpath下特定package,并加载具有特定注解的接口. 在框架平台的开发中,通常有很多的情况通过spring配置方式来实现某些功能会使得框架平台难以使用和扩展,我们通常的做 ...

  7. nodeJS中npm常见的命令

    常用的nodeJS中npm的命令:npm主要是node包管理和发布的工具.npm常用的命令:1:npm install <name> //(下载包) 下载后的包放在当前路径下面 npm i ...

  8. CSS3选择器(一)

    E[att^='val'] 选择属性值以val开头的任何字符 E[att$='val'] 选择属性值以val结尾的任何字符 E[att*='val'] 选择属性值包含val的任何字符 :root HT ...

  9. andriod GridView

    <?xml version="1.0" encoding="UTF-8"?> <GridView xmlns:android="ht ...

  10. C编程常见问题总结

    本文是C编程中一些常见错误的总结,有些是显而易见的,有些则是不容易发现 本文地址:http://www.cnblogs.com/archimedes/p/get-screwed-c.html,转载请注 ...