EF框架的学习

Posted mdfdd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF框架的学习相关的知识,希望对你有一定的参考价值。

1:什么是EF框架?

全称EntityFramework 官方点的解释是Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架,俗称EF框架

2:ORM框架是什么?

ORM(Object Relational Mapping),中文的意思对象关系映射,是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 这也同时暗示着额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。 更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元数据。

3:ORM的框架有哪些

EF框架、:HibernateTopLink、Castor JDO、Apache OJB等。

4:EF框架的三种模式

DataBase First 数据库优先, 传统的表驱动方式创建EDM,然后通过EDM生成模型和数据层代码。除生成实体模型和自跟踪实现模型,还支持生成轻型DbContext。简历理解就是先设计数据库,创建好数据库映射成对象和上下文。

Model First 模型优先,先创建EDM模型,再生成DDL数据库脚本和模型和数据层代码。除生成实体模型和自跟踪实现模型,支持生成轻型DbContext。简单理解就是设计EDM模型然后生成到数据库和创建对象和上下文。

CodeFirst 代码优先,手动创建POCO模型,数据层DbContext及映射关系,通过Database.SetInitializer生成数据库,这种方式较灵活,但是需要手动定义实体模型和关系映射。简单理解就是自己写好实体对象和映射关系,最后通过命令生成到数据库中去。

5:EF框架的优势和劣势

优势:

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

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

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

缺点:

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

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

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

6:总结

虽然EF框架能省了写底层的代码,但是建议新手还是从底层写起,EF框架个人认为很麻烦,就像一个工厂,虽然它很流程化,可是它用起来很不方便

,就是帮你把数据库的字段加载的Model,别的作用没有。如果想了解EF框架的三种建立模式,请参考https://www.cnblogs.com/eric-qin/p/5216999.html

当然,EF很少单独使用的,一般MVC+EF+三层一起使用。祝福大家多多学习,多多进步

 

以上是关于EF框架的学习的主要内容,如果未能解决你的问题,请参考以下文章

EF框架学习---EF中的在线场景保存数据

EF框架学习---EF中的在线和离线场景

EF实体框架之CodeFirst六

EF实体框架之CodeFirst七

EF框架中外键问题

EF框架原理