ADO.NET Entity Framework是一个对象-关系的映射架构,它提供了ADO.NET的一个抽象,可基于引用的数据库获取对象模型。可以通过Entity Framework使用不同的编程模型: Model FirstDatabase First 和 Code First. Model First 和Database First都通过一个映射文件来提供映射信息,而使用Code First,则映射信息全部通过C#代码来处理。
本章使用 CSDL(Conceptual Schema Definition Language,概念架构定义语i)、SSDL(StorageSchema Definition Language,存储架构定X语)和 MSL(Mapping Schema Language,映射架构语i)给出数据库和实体类之间的映射信息。讨论实体之间的不同关系,如对象的一个层次结构一个表关系、一个类型一个表关系和n对n关系。本章还将描述从代码中直接通过EntityClient提供程序访问数据库的不同方式,如何使用EntitySQL 或帮助方法创建Entity SQL,如何使用LINQ to Entities,也会讨论对象跟踪,以及数据上下文如何包含变化的信息,以更新数据。最后学习如何通过Entity Framework使用 POCO(Plain Old CLRObjects),以及如何使用Code First编程模型。
ADO.NET Entity Framework提供了从关系数据库架构到对象的映射。关系数据库和面向对象的语言用不同的方式定义了关联。例如,样本数据库Formulal包含Racers表和RaceResults表。要访问某个赛手的所有RaceResults行,需要执行一条SQLjoin语句。在面向对象的语言中,更常见的是定义一个Racer类和一个RaceResult类,使用Racer类的RaceResults属性访问赛手的比赛结果。在Entity Framework推出之前,对于对象-关系映射,就可以使用DataSet类和类型化的数据集。DataSet非常类似于数据库的结构,它包含DataTable, DataRow, DataColumn和DataRelation类,而不提供对象支持。ADO.NET Entity Framework支持直接定义完全独立于数据库结构的实体类,并把它们映射到数据库的表和关系上。通过应用程序使用对象,应用程序就可以免受数据库修改的影响。ADO.NET Entity Framework使用 Entity SQL 为存储器定义基于实体的数据库查询(T-SQL的个扩展)。LINQ to Entities允许使用LINQ语法来查询数据。对象上下文保存了变化的实体信息,从而在把实体写回存储器时,提供这些信息。Microsoft把核心框架中越来越多的部件移动到NuGet包中,这表示,不需要等待整个.NETFramework的更新,就可以发布新功能。在Entity Framework的最新版本中,越来越多的部件移动到NuGet包中。在Entity Framework 6中(本书讨论这个版本),框架就完全包含在一个NuGet包中。为了不与以前的版本冲突,一些部件现在位于新名称空间,但其中的类和成员没有改变。
Entity Framework 映射:
ADO.NET Entity Framework 通过 Model First和 Database First,提供了几个把数据库表映射到对象上的层。通过Database First,可以从一个数据库架构开始,使用Visual Studio项模板创建完整的映射。还可以先用设计器(Model First)设计实体类,再把它映射到数据库上,在该数据库中,表和表之间的关系可以有完全不同的结构。需要定义的层如下:
逻辑层一该层定义关系数据.
概念层一该层定义.NET类.映射层一该层定义从.
.NET类到关系表和关联的映射。
连接字符串:
在设计器中,连接字符串存储在配置文件中。EDM需要连接字符串,它不同于一般的ADO.NET连接字符串,因为需要映射信息。映射使用关键字metadata来定义, metadata需要3个对象:metadata关键字,带分隔符的映射文件列表.不变的提供程序名Provider(该提供程序用于访问数据源).Provider connection string(用于指定依赖于提供程序的连接字符串)下面的代码段显示了一个示例连接字符串。通过metadata关键字,带分隔符的映射文件列表引用BooksModel.csdl, BooksModel.ssdl 和 BooksModel.msl 文件,它们包含在程序集中用res:前缀定义的资源里。在Visual Studio中,设计人员只使用了一个文件BooksModel.edmx,它包含CSDL、SSDL和MSL。把Custom Tool 属性设置为EntityModelCodeGenerator,会创建包含在资源中的3个文件。
Entity Framework 编程
最新推荐文章于 2023-11-05 12:23:46 发布
本文详细介绍了ADO.NET Entity Framework,包括其作为对象-关系映射架构的角色,以及Model First、Database First和Code First三种编程模型。重点讨论了CSDL、SSDL和MSL在数据库和实体类映射中的作用,同时还涵盖了Entity SQL、LINQ to Entities、对象跟踪、数据上下文以及如何使用POCO和Code First编程。此外,还提到了Entity Framework的连接字符串和元数据信息。
4806

被折叠的 条评论
为什么被折叠?



