ASP.NET Dynamic Data Part.1(创建动态数据应用程序)

       ASP.NET 动态数据让我们能够以少许的努力快速构建以数据为中心的 Web 应用程序。它通过解析数据模型架构中的类型信息填充模板页面,这完全不需要代码或仅需要极少量的代码。15 分钟的工作足以让人获得深刻的印象,而在创建这些基础的功能后,还可进行大量自定义。

 

       了解 ASP.NET 动态数据程序的最佳起点是创建一个示例网站,只有这样你才能知道它的设置和运行是多么容易,以及有多少现成的功能可用。ASP.NET 动态数据网站的核心是数据库模型。可以使用 LINQ to SQL 或者实体框架来生成数据库模型。本文会使用 LINQ to SQL 。

 

创建动态数据网站

  • 创建一个新的 ASP.NET 动态数据项目。在 Visual Studio 中新建 ASP.NET Dynamic Data Linq to SQL 网站
  • 新增一个 LINQ to SQL 类,你会被提示将它放入 App_Code 目录中
  • 将 Northwind 数据库中的 Customer、Order、Order_Detail、Product 表拖放到 Northwind.dbml 文件的设计器窗口

       此时的 Visual Studio 的情况应类似于这样:

image image

 

       将这个数据模型注册到 ASP.NET 动态数据系统。打开 Global.aspx 文件,反注释 RegisterRoutes 方法中调用 DefaultModel.RegisterContext 的行,如下:

image 

       在这一行上执行 2 处修改,见红色:

DefaultModel.RegisterContext(typeof(
NorthwindDataContext
), 
    new ContextConfiguration() { ScaffoldAllTables = true });

       修改类型是为了注册数据模型。修改 ScaffoldAllTables 属性的值是让 ASP.NET 动态数据系统暴露我们添加到 Web 应用程序数据模型的全部 4 张表(以后我们会做更严格的控制)。

 

检验动态数据网站

       现在运行程序会看到如下的基架界面,ASP.NET 动态数据系统从数据模型中取得了这 4 张表并根据它们构建了页面结构,你可以看到 Default.aspx 页面上有每个表的链接:

image

       单击 Customers 链接,可以看到一个包含了 Northwind.Customers 表前 10 条记录的页面:

image

image

       ASP.NET 动态数据系统根据数据模型创建了表,你可以看到网页上的表格列和数据库表 Customers 的列相对应。

       创建好的基架可以做很多有趣的事情:

  • 页面的下方可以修改分页的记录数,也可以在页面间切换或跳转到指定的页
  • 每行左端的 3 个按钮可以完成相应操作
  • 最右侧,ASP.NET 动态数据系统识别出了 Customers 表和 Orders 表之间的外键关系,并未每个记录自动添加了导航的链接

       单击其中任意一个链接,就会看到显示某个选中客户的全部订单的页面:

image

       注意页面最右侧,ASP.NET 动态数据系统通过数据模型识别出 Orders 表有两个外键关系:

image

       返回主页,单击 Orders 链接,注意这里有个 Customers 下拉列表框(怎么用,你懂的):

image

 

深入理解动态数据项目

       通过生成数据模型并修改了一行代码,我们就创建了一个暴露数据库表的 Web 应用程序,并且以智能且实用的方式实现了它。我们得到了完整的 CRUD 支持并灵活的使用外键进行记录的导航,你不觉得这很酷吗?

       现在,该看看项目自身并理解其中主要的部分了。ASP.NET 动态数据系统并不是你可能期望的那个代码生成功能。它其实是一个非常灵活且可配置的模板系统。下面我们就对项目进行一下剖析,看图:

image

  • App_Code 目录包含程序代码,现在只有数据模型类。不过后续为了对网站进行自定义,我们将陆续添加一些代码
  • DynamicData 目录中,展开 PageTemplates 目录,你会看到 5 个模板(它们都是用富数据控件构建的用户控件)。
  • Filters 目录包含了用于过滤记录列表的控件
  • FieldTemplates 目录用于显示不同数据字段的控件
  • EntityTemplates 目录支持 ASP.NET 4 新增的名为实体模板的动态数据特性,是 DynamicData 控件用来格式化数据元素的标记
  • CustomsPages 目录支持自定义 ASP.NET 动态数据网站的某种机制。你可以把自定义的模板放到这里以自定义数据显示的方式
  • Content 目录包含呈现使用的静态元素以及用于翻阅记录列表的控件
  • Global.aspx 在 ASP.NET 动态数据项目里非常非常的重要,它用于注册数据模型,还用于注册路由
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值