欢迎来到天天文库
浏览记录
ID:39548327
大小:376.00 KB
页数:46页
时间:2019-07-06
《Entity Framework》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、EntityDataModel(EDM)深入分析,Part1EntityDataModel是.NETFrameworkv3.5SP1引入的新功能,比LinqToSQL更加强大的ORM,让开发人员只需要着眼于领域对象模型的开发,而不需要考虑它们是如何与关系数据库交互。本系列文章逐步深入介绍如下内容:EDMXSchema文件、ModelBrowser、映射关系、产生的实体类(Generatedentityclasses)、文档(Documentation)等等。 1.EDMXSchema文件 可以将EDMX作为XML文件打开,你会发
2、现该文件包含3个主要部分。ConceptualModels(CSDL)StorageModels(SSDL)Mapping(MSL) 一般情况下,你没有必要手动修改EDMX-XML文件。可视化的EDM设计器、MappingDetails窗口和ModelBrowser窗口包含有上述3个部分,并非常友好地显示整个EntityDataModel模型。 当你编译项目时,MSBuild将从EDMX文件提取CSDL/SSDL/MSL内容,并放置3个独立的XML文件到项目的输出目录。 2.ModelBrowser窗口 ModelBrows
3、er窗口以可视的树形图显示概念模型和存储模型。 3.Mappingdetails窗口 EDM设计器也提供了一个不错的MappingDetails窗口,包含2个视图。 MapEntitytoTables/View 这一视图显示了数据库中所有字段和相应实体中的属性,可以用来查看和编辑EDM的映射关系。 MapEntitytoFunctions 这一视图用来选择一个特定的存储过程来插入、更新或删除Entity实例。 4.生成的实体类(GeneratedEntityClasses) 除了上述的XMLSchema文件外
4、,EDM向导也生成了实体类。下一步仔细分析.Designer.cs文件中的实体类,并和LINQtoSQL中的类进行比较。 1)比较LINQtoSQLclass和EDMEntityObjectclass//LINQtoSQL[Table(Name="dbo.Employees")]publicpartialclassEmployee:INotifyPropertyChanging,INotifyPropertyChanged EDM类则是以不同的attributes,并且总是继承EntityObject或ComplexObject
5、类。EntityObject类提供了变更跟踪和关系管理。//EntityDataModel[global::System.Data.Objects.DataClasses.EdmEntityTypeAttribute(NamespaceName="NorthwindModel",Name="Employee")][global::System.Runtime.Serialization.DataContractAttribute()][global::System.Serializable()]publicpartialclassE
6、mployee:global::System.Data.Objects.DataClasses.EntityObject 2)比较LINQtoSQLentityconstructor和EDMCreatemethod//LINQtoSQLpublicEmployee(){this._Employees=newEntitySet(newAction(this.attach_Employees),newAction(this.detach_Employees));this._E
7、mployeeTerritories=newEntitySet(newAction(this.attach_EmployeeTerritories), newAction(this.detach_EmployeeTerritories));this._Orders=newEntitySet(newAction(this.attach_Orders),newAction(this
8、.detach_Orders));this._Employee1=default(EntityRef);OnCreated();} EDM没有生成上述LINQtoSQL的构造函数,而是创建了一个特定的Create
此文档下载收益归作者所有