EF实体框架是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架,具体什么是ORM,百度一下吧。
EF原理图:
添加EF很简单,在项目中右键—添加新项—ADO.NET实体数据类型—选择对应的数据库—生成—完成—进行数据操作
基本的数据操作是这样的:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EF测试1 { class Program { static void Main(string[] args) { HelloEFEntities content = new HelloEFEntities(); #region 增加 /* Student s1 = new Student() { sName="张三",sAddress="杭州"}; content.Student.Add(s1); content.SaveChanges();//这句话就是EF模型中,将此行转换为sql语句 */ #endregion //删除 //Student s1 = new Student() { sName = "张三" }; //content.Student.Remove(s1); //修改 Student s3 = new Student() { sID=1 ,sName = "张三" }; var s4 = from s in content.Student where s.sID == s3.sID select s; Student s5 = s4.FirstOrDefault(); s5.sName = s3.sName; content.SaveChanges(); //基本查找 // LINQ TO SQL var s1 = from s in content.Student select s.sAddress;//列出地址的信息,如果是select s就是列出全部列 Console.WriteLine(s1.Count());//输出数目 //条件查询 var s2 = from s in content.Student where s.sID == 2 select s; Console.WriteLine("ok"); Console.ReadLine(); } } }
为什么用EF而不用原生的Ado.net呢?
1、极大的提高开发效率:EF是微软自己的产品,跟VS开发工具集成度比较好,开发中代码都是强类型的,写代码效率非常高,自动化程度非常高,命令式的编程。
2、EF提供的模型设计器非常强大,不仅仅带来了设计数据库的革命,也附带来的自动化生成模型代码的功能也极大的提高开发和架构设计的效率
3、EF跨数据支持是ORM框架主要功能点之一,带来的是可以通过仅仅改变配置就可以做到跨数据库的能力。
4、缺陷:性能差(生成sql脚本阶段),在复杂查询的时候生成的sql脚本效率不是很高。
附EF学习链接:http://www.cnblogs.com/fly_dragon/archive/2011/02/22/1961744.html
说点什么
欢迎讨论