近期本人在关注实体设计的过程中一直在了解“ADO.NET Entity Framework 数据模型”,从中结识了.NET Framework 4中的ASP.NET 动态数据,ASP.NET 动态数据允许您通过在运行时从数据库架构推断数据实体的外观和行为并从中派生 UI 行为,创建可扩展的、数据驱动的 Web 应用程序。
动态数据的一个重要功能是基架机制。 在动态数据网站中启用基架机制后,ASP.NET 会对数据模型进行分析,并基于数据模型中的数据动态地生成网页。 这些自动生成的网页为每个表提供了显示、插入、删除及编辑功能。同时,您也可以轻松地自定义基架元素,或者创建新元素以重写默认行为。
下面通过一个实例来演示基于实体设计动态数据网站,包括以下内容:
l 创建ADO.NET Entity Framework数据模型
l 创建实体框架,包括:实体、继承关系
l 根据数据模型自动生成数据库对象
l 创建一个基于ADO.NET Entity Framework的ASP.NET动态数据网站
第一步:新建ASP.NET Dynamic Data 实体网站
打开Visual Studio 2010,新增一个ASP.NET Dynamic Data 实体网站,如下图所示:
· 若要使用 LINQ to SQL 模型,请选择“动态数据 LINQ to SQL 网站”。
· 若要使用 ADO.NET Entity Framework 模型,请选择“Dynamic Data 实体网站”。
第二步:创建 Entity Framework 创建数据模型
1. 创建数据模型
1. 首先右击 App_Code 文件夹,然后单击“添加新项”。
2. 新增“ADO.NET 实体数据模型”,如下图所示:
3. 选择模型内容
可以选择“从数据库生成”模型中的实体,即一个表对应一个实体。
也可以选择“空模型”,通过可视化界面设计概念模型,再通过概念模型生成物理模型,即数据库对象。
当前实例以“空模型”为例,我们将选择设计概念模型再通过模型生成数据库对象,如下图所示:
2. 创建实体及关系
1. 首先打开新增的数据模型的设计窗口。
2. 通过工具箱,在增加“实体”:
从工具箱中拖动一个实体到设计窗口
3. 设置实体的“实体名”与“实体集名称”
实体名:即实体的名称,系统会自动生成代码时,会根据此名称生成对应的类名。
实体集名称:即实体对应的数据库对象名称,系统通过模型生成数据库时,会根据此名称生成对应的表名。
4. 添加实体的属性
接下来可以增加实体的属性,如下图所示:
增加实体的“属性”时,可以设置相关属性,如是否为null、类型等,这些属性会影响:
l 生成的数据库表的字段属性。
l 动态数据网站的编辑界面的校验、控件等。
根据具体业务的分析,我们增加如下二个实体:
5. 设置实体关系
首先在可视化设计窗口点击右键,添加“关联”:
然后设置关联的各种属性,如下图:
设置后的数据模型:
3. 根据模型生成数据库
首先在可视化设计窗口点击右键,点击“根据模型生成数据库”:
其次设置好您的数据库连接,如下图:
系统后自动生成SQL脚本,并且会存储在指定的SQL脚本文件中,如下图:
打开此SQL脚本文件,执行SQL即可:
第三步:注册数据上下文
1. 首先打开Global.asax.cs文件。
2. 在 RegisterRoutes 方法中,根据注释说明取消对下列行的注释并对其进行修改:
其中通过设置ScaffoldAllTables属性为true,注册数据上下文时为所有表启用基架,只有为数据模型注册数据上下文才能使用动态数据功能。
1. 选择Default.aspx页面点击右键,点击“在浏览哭中查看”。
2. 主界面会将通过列表展示创建的数据模型中所有实体
3. 选择表名称可以展示所有的记录,以及新增、修改、删除记录
综上所示:通过ADO.NET Entity Framework数据模型与动态数据网站结合,可以方便实现基于实体设计与编码,自动生成网页为每个表提供了显示、插入、删除及编辑功能。