EF(Entity Framework)

一、什么是EF?

    实体架构(Entity Framework)是微软以来ADO.Net为基础开发出来的对象关系映射(ORM)解决方案,它解决了对象持久化问题,将程序员从编写麻烦的SQL语句中解放出来。

 优点:

支持多种数据库(Microsoft SQL Server、Oracle和DB2等);

强劲的映射引擎,能很好地支持存储过程;

提供Visual Studio集成工具,进行可视化操作;

能够与ASP.NET、WPF、WCF、WCF Data Services进行很好的集成。

二、EF的核心思想:将表实体的变化,映射到表的变化;

    对于ADO.net的使用在博客中进行了总结:.Net连接SQL Server。

    在ADO .NET中用于存取和管理资料的两个主要元件是.NET Framework 资料提供者和 DataSet,5大对象实现应用 程序和数据库之间的操作。而在EF中

    1.封装了数据库的统一入口,EF上下文;

    2.把对实体的操作放入上下文中;

    3.把对实体操作产生的变化生成Sql脚本执行到数据库中;

三、EF优缺点的理解

原先用的是三层架构中ADO.NET做底层开发,纯手工sql语句拼装。后来遇到一个MVC+EF项目,体会到了EF的强大性。

它是微软封装好一种ADO.NET数据实体模型,将数据库结构以ORM模式映射到应用程序中。

优点:

1.简洁的Linq to Sql语句大大提高了开发人员的效率,不要再写复杂的sql语句;

2.不再需要再管应用程序如何去连接数据库;

3.EF可以用作用于数据服务和OData Service的基础设施;

缺点:

1.由于linq语句编译之后就是sql,对于这种自动生成的sql语句无法控制;

2.EF的运行机制会消耗大量内存,大大降低了程序运行效率,从而导致降低了用户在客户端的体验效果;

3.一旦数据结构发生变化,需要更新EF数据model;有时还可能会出现找不到更新过的实体类这种情况;

原文地址:https://www.cnblogs.com/xr0818/p/13370933.html