ASP.NET 动态数据模型概述

更新: 2008 年 7 月

数据模型表示数据库中的信息以及数据库中项之间的相互关系。ASP.NET 动态数据使用将数据表示为 CLR 类型的数据模型。它支持 LINQ-to-SQL 和 ADO.NET Entity Framework 数据模型。

通过数据模型,可以控制数据字段的外观和行为,并且只需少量代码或者不需代码即可执行自动验证。此外,还可以自定义数据模型,以影响数据字段的验证方式以及用于显示和编辑数据字段的 UI 的呈现方式。

通过了解和使用数据模型,您可以执行以下操作:

  • 通过在数据层创建数据相关逻辑,而不是在表示层嵌入数据相关逻辑,使代码的可重用性更强。

  • 在数据层自定义数据字段验证。

  • 通过将元数据应用于数据字段来自定义数据字段的外观和行为。

本主题包含以下部分:

  • 背景

  • 显示和修改数据字段

  • 验证数据字段

  • 其他信息

背景

动态数据支持 LINQ to SQL 以及 NET Framework 中包括的 Entity Framework 数据模型。这些模型包含 CLR 类型,动态数据使用这些类型来查询数据库,并执行创建、读取、更新和删除 (CRUD) 操作。利用这些模型,可以方便地将数据验证和业务逻辑规则集成到数据模型中。

在 Visual Studio 2008 中创建新项目时,可以选择**“LINQ to SQL 类”“ADO.NET 实体数据模型”**模板。此选择决定项目使用的模型类型,即是使用 LINQ-to-SQL 还是 Entity Framework 模型。动态数据基架在同一项目中仅支持一种数据模型类型。

在运行时,动态数据会自动提取数据模型的有关信息,如数据字段属性。通过此信息,动态数据可以推断如何创建用于显示和编辑数据的 UI。为了呈现该 UI,它将使用字段模板。例如,动态数据使用下面的信息来呈现 UI:

  • 表之间的关联信息,用于显示外键列并在表之间导航。

  • 数据类型信息,用于对数据字段添加验证。例如,可以使用 null 列信息来确定是否需要数据字段,可以使用长度信息来限制用户的文本输入的最大长度。

有关更多信息,请参见如何:在数据模型中自定义数据字段的外观和行为

显示和修改数据字段

动态数据使用数据模型元数据来自动确定使用哪些字段模板来呈现用于显示和修改数据字段的 UI。字段模板是用户控件,动态数据提供这些字段模板,以便基于数据字段的内部数据类型来显示和修改数据字段。为了呈现数据类型,动态数据会在数据模型中执行搜索,查找应用了 UIHintAttribute 属性的类。

如果该属性存在,动态数据会指定使用哪个字段模板来显示和修改特定数据字段类型。如果该属性不存在,动态数据会搜索其名称与数据字段类型相匹配的字段模板。例如,为了显示整数值,动态数据会搜索名为 Integer.ascx 的字段模板。有关更多信息,请参见 ASP.NET 动态数据字段模板概述

动态数据允许您自定义和扩展要呈现的用于显示和编辑数据字段的 UI。您可以应用以下可能的自定义项:

验证数据字段

动态数据支持基于数据模型进行数据字段验证,其中包含以下类型的验证:

  • 必填字段验证。如果数据字段不能为 null,动态数据会强制为该字段提供一个值。

  • 长度验证。如果数据库字段为字符串,动态数据会强制该字段的最大长度。

  • 类型验证。动态数据会强制用户的输入值与数据字段的内部数据类型匹配。

动态数据允许您按如下所示的方式自定义和扩展数据字段验证:

  • 使用属性。希望将附加验证应用于动态数据已经提供的内容且默认 System.ComponentModel.DataAnnotations 属性足以满足您的要求时,应该使用此方法。

  • 使用分部类方法。通过重写用于处理对数据字段所做更改的分部方法,可以自定义验证并添加自己的业务逻辑。当希望将常用业务逻辑添加到不能由属性处理的数据模型时,应该使用此方法。

有关更多信息,请参见如何:在数据模型中自定义数据字段验证

其他信息

有关动态数据的更多信息,请参见下列主题:

返回页首

请参见

任务

演练:向现有网站中添加动态数据

演练:向现有网站中添加动态数据

概念

ASP.NET 动态数据字段模板概述

ASP.NET 动态数据基架和网页模板概述

ASP.NET 动态数据概述

参考

System.ComponentModel.DataAnnotations

修订记录

日期

修订历史记录

原因

2008 年 7 月

新增了主题。

SP1 功能更改。