创建第一个简单的实体数据模型 (EDM):

创建第一个简单的实体数据模型 (EDM):

让我们创建第一个简单 ADO.Net 实体数据模型,在上一步中创建的 SchoolDB 数据库和理解的基本构造块。让我们做它一步一步。

 

1) 打开 VS2010 并创建控制台项目。


create first simple edm

 

2) 右键点击 'EFTutorialProject',转到添加-> 新项目并从弹出式菜单中选择 ADO.NET 实体数据模型和单击"添加"。


Entity Framework edm

 
3) 实体数据模型向导将打开。选择从数据库生成选项,并单击 '下一步
Entity Framework edm

 

4) 你可以从你现有的 DB 连接选择的数据连接,或通过单击新建连接按钮创建新的连接。我到我的 schoolDB 数据库使用现有的数据库连接。如果你选择的复选框在 App.Config 作为保存实体的连接设置: ' 这还将与默认后缀与 db 名称 app.config 文件添加连接字符串。如果你想要您可以更改它。设置您的 db 连接之后,请单击 '下一步。

Entity Framework edm

 

5) 这一步将显示数据库中所有表、 视图和存储过程。选择表、 视图和 SPs 然后单击 ' 完成。



Entity Framework edm

 

6) 后点击完成,它会将 Model1.edmx 文件添加到您的项目。


 
Entity Framework edm

 

通过双击 Model1.edmx,它将打开 EDM 设计器,其中显示所选的表和它们之间的关系的所有实体。

所以这种方式可以创建简单的 EDM 从您现有的数据库。现在让我们看所有的构造块生成 EDM (Model1.edmx) 中所示上面图。

EDM 设计器:EDM 设计器表示您的概念模型。它包括实体、 协会及实体之间的多样性。最初完全看上去会像数据库表结构,但您可以添加或合并列,或删除列,不来自此设计器的应用程序所需。即使您可以添加新的对象,在此模型中,可以从上下文菜单中如上面图中所示的不同的数据库表中的列。请记住,不管你做的更改在这里应该是与存储模型映射。所以你要做在设计器中的任何更改时要小心。

 

您可以在 XML 视图中一起打开此 EDM 设计器在 XML 视图中您可以在其中看到的 EDM 概念架构 (CSDL)、 存储架构 (SSDL) 和映射架构 (MSL) 的所有三个部分。在 Model1.edmx 上的单击鼠标右键-> 单击 '打开'......,这将打开弹出式菜单。在弹出菜单中选择 XML (文本) 编辑器。Visual Studio 不能在同一时间,所以你会看到一条消息询问是否确定以关闭设计视图的模型显示模型的是在设计视图和 XML。单击是。
这将打开 XML 视图。您可以看到以下 XML 视图由切换所有大纲显示

Entity Framework edm

 
您可以看到 SSDL 内容、 CSDL 内容和 C-S 映射内容在这里。如果展开 CSDL 和 SSDL,每个有一些常见的 XML 节点,每个架构节点下。

EntityContainer:EntityContainer 是 EntitySets 和 AssociationSets 的包装。它是模型的查询将关键切入点。

EntitySet:EntitySet 是 EntityType 的容器。它是一组的相同 entitytype。你可以认为它像 db 表。

EntityType:EntityType 是模型中的数据类型。您可以看到每个 EntityType 为您在 XML 中的概念模型。如果你展开 EntityType 节点的 XML 中,您可以看到每个属性和它的类型和其他信息。

AssociationSet:AssociationSet 定义了每个 EntitySet 之间的关系。

ObjectContext:现在,如果你打开 Model1.designer.cs,你可以看到两个主要区域,上下文和实体。展开上下文区域。你可以看到带有后缀 '实体' 的分部类和从 ObjectContext 类派生的。
此类表示 EntityContainer,你可以看到从 Model1.edmx 的 XML 视图或从 EDM 属性窗口。您可以调用此作为上下文类。
此类是与实体对象和数据库进行交互的主要类。ObjectContext 类的一个实例封装连接到数据库中,元数据描述模型,和一个 ObjectStateManager 对象,对象跟踪期间创建、 更新和删除操作。

Entity Framework edm

ObjectSet:每个上下文类中的 EntitySet 是一种类型的包装,实体的 ObjectSet <>。例如 ObjectSet.

IObjectSet:IObjectSet 是一个接口,给像功能的集合。ObjectSet <> 还实现了 IObjectSet。IObjectSet 是在单元测试你可以在其中创建 (类型 IObjectSet <>) 的假 EntitySet 中有用。我们在我们的示例项目中使用 IObjectSet。

重要的一点要明白这里是如果我们使用 IObjectSet 然后我们不会像包括,ObjectSet 的一些功能除了和其他方法。然而,我们要写的扩展方法,包括或除方法,将具有相同的功能。

EntityTypes:现在如果你展开 '实体' 区域,你可以看到很多的分部类,从 EntityObject 派生类。此类是你模型的 EntityTypes。

下面的关系图显示了我们的电火花加工类:




Entity Framework edm

 

posted @ 2014-01-09 11:19  HimuraBattosai  阅读(225)  评论(0编辑  收藏  举报