ASP.NET 动态数据教程-第一个示例

作者:vkvi 来源:ITPOW(原创) 日期:2009-4-5

开发工具

  • Microsoft Visual Studio 2008 Service Pack 1
  • Visual Web Developer 2008 速成版 Service Pack 1,可以在微软官方网站 http://www.microsoft.com/express/download/ 下载一个,完整的离线安装版有 1G 多点。

另外说明一下,在开发过程中,由于本文建立的是项目而不是网站(当然您也可以选择建立网站),所以对程序有所改动,运行程序之前可能需要点击菜单栏的“生成”->“生成<项目>”(即 Ctrl + F5),而不是直接在浏览器中刷新。

第一个示例

新建一个项目

选择“动态数据 Web 应用程序”,起名为“DynamicData”。

新建项目

选择“动态数据 Web 应用程序”表示使用 LINQ to SQL;而选择“动态数据实体 Web 应用程序”表示使用 ADO.NET Entity Framework。在同一项目中,我们只能选择一种。

新建数据库

在解决方案资源管理器中,在 App_Data 文件夹上,单击鼠标右键,选择“添加”->“新建项”,新建一个名称为“Cftea.mdf”的数据库。

新建数据库

当然,也可以在 SQL Server 数据库管理系统中来建这个数据库,只是那样的话,要在 web.config 中自己写数据库连接字符串。

在数据库资源管理器中,连接刚才建立的数据库,在“表”上单击鼠标右键,选择“添加新表”。我们建立两个表,分别如下:

Products

  • ProductId int 主键 标识
  • ProductName nvarchar(50) Not Null
  • CategoryId int /*Categories.CategoryId 的外键*/

Categories

  • CategoryId int 主键 标识
  • CategoryName nvarchar(50) Not Null

向表 Categories 中添加一些数据。

创建数据模型

添加一个新项,由于我们建立项目时选择的是“动态数据 Web 应用程序”,所以现在选择“LINQ to SQL 类”,而不是“ADO.NET Entity Data Model”。我们取名为“Cftea.dbml”。

添加新项

此时会弹出对象关系设计器(O/R 设计器),展开“数据库资源管理器”,选中所有的表,将这些表拖拽到对象关系设计器中。

注册数据上下文

打开 Global.asax,找到 RegisterRoutes 方法,添加:

model.RegisterContext(typeof(CfteaDataContext),
    new ContextConfiguration() { ScaffoldAllTables = true });

CfteaDataContext 是哪里来的呢?在解决方案资源管理器中展开 Cftea.dbml,双击 Cftea.designer.cs,就可以看到有这么一个类了。

new ContextConfiguration() { ScaffoldAllTables = true } 是 .NET Framework 3.5 中的语法,new ContextConfiguration() 表示创建一个 ContextConfiguration 对象,大括号中的内容表示设置这个对象的 ScaffoldAllTables 属性为 true。

ScaffoldAllTables 表示对所有的表启用基架,也就是公开数据模型中所有的表,实际中,为了安全,我们可能不会这样公开所有的表,但这里只是一个示例。

运行

单击菜单中的“生成”->“生成 DynamicData”,按 Ctrl+F5 运行。

运行界面

相关文章