EntityFramework6 快速入门教程【转】

时间:2022-12-20 14:02:32

https://www.cnblogs.com/wujingtao/p/5401113.html

不得不说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 快速入门教程

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

  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. VS 2013 打包程序教程

    简述 如果你只是想要在他人的机子上运行你的程序而不想安装,有一种简单的方法,只要使用本教程的“步骤—3.生成Release 文件夹”即可.但是有一点需要注意,如果你在程序中调用了其他的dll,那么你需 ...

  2. IOS Quartz2D 通过UIColor生成图片

    普通生成 示例代码: //这里实现普通生成图片的方法 - (void)drawRect:(CGRect)rect { CGRect cxRect = CGRectMake(, , , ); UIGra ...

  3. android模拟器不能用键盘

    android模拟器不能用键盘?咋整啊?

  4. angularjs指令中的compile与link函数详解(转)

    http://www.jb51.net/article/58229.htm 通常大家在使用ng中的指令的时候,用的链接函数最多的是link属性,下面这篇文章将告诉大家complie,pre-link, ...

  5. HW1.2

    public class Solution { public static void main(String[] args) { System.out.println("Welcome to ...

  6. Xcode添加静态库以及编译选项配置常见问题

    一,Xcode编译出现Link错误,出现"duplicate symbols for architecture i386 clang"提示.问题:链接时,项目有重名文件.解决:根据 ...

  7. Oracle EBS-SQL (MRP-6):检查MRP计划运行报错原因之超大数据查询1.sql

    /*逐一运行检查计划运行超大数据*/ ---------------------------------------------------- /*查询-1*/ select  plan_id, 'C ...

  8. Why Are Thread.stop, Thread.suspend, Thread.resume and Runtime.runFinalizersOnExit Deprecated ?

    Thread.stop, Thread.suspend, Thread.resume被标记为废弃的方法.在查看JDK的文档时,提到了下面的参考文章,先是英文版,接着是中文翻译. Why is Thre ...

  9. Netty入门

    一.NIO Netty框架底层是对NIO的高度封装,所以想要更好的学习Netty之前,应先了解下什么是NIO - NIO是non-blocking的简称,在jdk1.4 里提供的新api,他的他的特性 ...

  10. 自定义simple_tag和filter在html中渲染出来的联系和区别

    关于 simple_tag: 1,在app下创建一个(templatetags)目录,(被引用的模块必须放在该目录下,且目录名称不可更改): 2,创建任意py文件: 3,创建template对象: f ...