开发工具
另外说明一下,在开发过程中,由于本文建立的是项目而不是网站(当然您也可以选择建立网站),所以对程序有所改动,运行程序之前可能需要点击菜单栏的“生成”->“生成<项目>”(即 Ctrl + F5),而不是直接在浏览器中刷新。
第一个示例
新建一个项目
选择“动态数据 Web 应用程序”,起名为“DynamicData”。
选择“动态数据 Web 应用程序”表示使用 LINQ to SQL;而选择“动态数据实体 Web 应用程序”表示使用 ADO.NET Entity Framework。在同一项目中,我们只能选择一种。
新建数据库
在解决方案资源管理器中,在 App_Data 文件夹上,单击鼠标右键,选择“添加”->“新建项”,新建一个名称为“Cftea.mdf”的数据库。
当然,也可以在 SQL Server 数据库管理系统中来建这个数据库,只是那样的话,要在 web.config 中自己写数据库连接字符串。
在数据库资源管理器中,连接刚才建立的数据库,在“表”上单击鼠标右键,选择“添加新表”。我们建立两个表,分别如下:
Products
Categories
向表 Categories 中添加一些数据。
创建数据模型
添加一个新项,由于我们建立项目时选择的是“动态数据 Web 应用程序”,所以现在选择“LINQ to SQL 类”,而不是“ADO.NET Entity Data Model”。我们取名为“Cftea.dbml”。
此时会弹出对象关系设计器(O/R 设计器),展开“数据库资源管理器”,选中所有的表,将这些表拖拽到对象关系设计器中。
注册数据上下文
打开 Global.asax,找到 RegisterRoutes 方法,添加:
CfteaDataContext 是哪里来的呢?在解决方案资源管理器中展开 Cftea.dbml,双击 Cftea.designer.cs,就可以看到有这么一个类了。
new ContextConfiguration() { ScaffoldAllTables = true } 是 .NET Framework 3.5 中的语法,new ContextConfiguration() 表示创建一个 ContextConfiguration 对象,大括号中的内容表示设置这个对象的 ScaffoldAllTables 属性为 true。
ScaffoldAllTables 表示对所有的表启用基架,也就是公开数据模型中所有的表,实际中,为了安全,我们可能不会这样公开所有的表,但这里只是一个示例。
运行
单击菜单中的“生成”->“生成 DynamicData”,按 Ctrl+F5 运行。