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
.net: 最核心的基础平台(可以看做运行环境和巨多类库),仅次于 *** 作系统
asp.net: .net平台内开发web的技术
MVC: 网页开发的一种框架,与具体平台或者语言关系不大
Ado.Net: .net平台内访问数据库的技术
EF: .net平台内访问数据库的最新最强大的ORM
ORM: 把数据库映射为实体类的技术
NHibemate: .net平台内访问数据库的一种可选ORM,从Java转换而来
以上仅仅是个人见解,不代表官方说法。
给你举个例子:
static void Main(string[] args){
using (MyDBEntities en = new MyDBEntities())
{
var p1 = en.People.First(x =>
x.Name == "Jim")
Console.WriteLine(p1.Age)
var p2 = en.Database.SqlQuery<Person>(
@"select top 1 * from person
where name = 'Jim'")
.First()
Console.WriteLine(p2.Age)
//p1 p2是同一个记录
}
Console.ReadLine()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)