EF框架的优点是什么?

EF框架的优点是什么?,第1张

Entity Framework 应用程序有以下优点:

1、应用程序可以通过更加以应用程序为中心的概念性模型(包括具有继承性、复杂成员和关系的类型)来工作。

2、应用程序不再对特定的数据引擎或存储架构具有硬编码依赖性。

3、可以在不更改应用程序代码的情况下更改概念性模型与特定于存储的架构之间的映射

4、开发人员可以使用可映射到各种存储架构(可能在不同的数据库管理系统中实现)的一致的应用程序对象模型。

5、多个概念性模型可以映射到同一个存储架构。 · 语言集成查询支持可为查询提供针对概念性模型的编译时语法验证。

扩展资料:

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

相对于传统的ADO等各种数据库 *** 纵技术来说,微软的ADO.Net更为先进,它封装了很多底层 *** 作,抽象了接口,针对接口编程,将调用统一化。

EF框架的应用:

首先,实在VS中建立新项,添加新建项—数据—ADO.NET实体数据模型,然后设置其自己想要的映射的数据集,设置成功后,会生成一些列文件:

如上图所示,这就是我测试用的shoppingBus数据库生成的实体映射。其中有3个重要的类,分别是:

dataModel.Context.tt下的dataModel.Context.cs类,这个类是包含的数据库的上下文关系,我当时在看的时候就想到了设计模式策略模式中的context类,我认为它们有着共同之处,都是负责数据间的交互和实现。

DataModel.tt下的数据表类,比如这里的就是pet.cs类和petType.cs类。这里就是相当于具体的实体类,值得特别说明的是,EF生成的实体映射同时包括表关系,主外键的关系等。

参考资料:

百度百科-ADO.NET Entity Framework

可以使用Entity Framework的Db First模式生成model。

第一步:创建

ASP .NET MVC项目

第二步:创建实体模型

在项目上右击 添加新建项目→Ado.Net实体数据模型

如下图所示:

第三步:与现有的数据库进行连接生成EF实体

然后按照如下所示,选择从数据库生成实体数据模型【当然如果你想使用CodeFirst方式也是可以的,这是后话了】:

新建连接到现有的数据库,如下图所示:

点击下一步,选择我们要生成实体对应的表、试图、存储过程等,如下图所示:

最后点击完成,则系统帮我们生成了数据库实体类以及EDMX的定义文件。

如图所示:

是通过映射文件来映射的。举个简单的例子,例如我有个Teacher实体类(某教学管理系统老师用户):

private Integer id //编号

private String name //姓名

private String password //密码

private Date createDate //创建日期

同时,我创建了数据表TEACHER:

create table teacher( id number(9) primary key, --编号 name varchar2(20), --姓名 password varchar2(20), --密码 create_date date --创建日期 )

这时,怎么关联它们呢?通过加载hibernate框架,我们就可以使用映射文件来关联实体类和数据库了

文件名:Teacher.hbm.xml(必须与实体类名字一致)

内容:

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" " http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<!-- Mapping file autogenerated by MyEclipse Persistence Tools-->

<hibernate-mapping>

<class name="com.yss.Teacher" table="TEACHER" schema="WZM">

<id name="id" type="java.lang.Integer">

<column name="ID" precision="9" />

</id>

<property name="name" type="java.lang.String">

<column name="NAME" length="20" />

</property>

<property name="password" type="java.lang.String">

<column name="PASSWORD" length="20" />

</property>

<property name="createDate" type="java.util.Date">

<column name="CREATE_DATE" length="7" />

</property>

</class>

</hibernate-mapping>

当然,这只是比较简单的映射,还有什么多对多,一对多等映射,并且映射时如何设置以达到需要的效果,这些你可以在网上搜索相关资料自行查看。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11880819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存