MetaModel Class
Updated: July 2008
Represents one or multiple databases that are used by ASP.NET Dynamic Data.
Assembly: System.Web.DynamicData (in System.Web.DynamicData.dll)
| Exception | Condition |
|---|---|
| InvalidOperationException | Can be thrown by any method if there has been a data context registration error. |
The MetaModel type lets you register one or multiple data contexts for a Dynamic Data Web application.
A data context is an object that represents a database connection. A data context has access to one data model which represents a database that is accessible through that connection. A data model is an object that represents a database's data entities as CLR types. Dynamic Data supports data models based on LINQ to SQL and on the ADO.NET Entity Framework.
In Visual Studio 2008, you can generate data-model types by using the LINQ to SQL Classes template or the ADO.NET Entity Data Model template. These templates use the Object Relational Designer (O/R Designer) for the LINQ to SQL model, or the ADO.NET Entity Data Model Designer (Entity Designer) for the Entity Framework model.
The following example shows how to use MetaModel type to perform the following tasks in order to use automatic scaffolding in an ASP.NET Web site:
Get the data model for the default data context.
Get the data model for a specified data context.
Evaluate the routing path (determine the URL) for a specified table.
The example consists of a page and its code-behind file.
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="PathModel.aspx.vb" Inherits="PathModel" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>Path Model</title> </head> <body> <asp:DynamicDataManager ID="DynamicDataManager1" runat="server" AutoLoadForeignKeys="true" /> <h3>GetActionPath</h3> <form id="form1" runat="server"> <asp:GridView ID="GridDataSource1" runat="server" AutoGenerateColumns="false" DataSourceID="LinqDataSource1" AllowPaging="true"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="<%#EvaluateActionPath()%>">ListDetails</asp:HyperLink> </ItemTemplate> </asp:TemplateField> <asp:DynamicField DataField="FirstName" /> <asp:DynamicField DataField="LastName" /> </Columns> </asp:GridView> <asp:LinqDataSource ID="LinqDataSource1" runat="server" TableName="Customers" ContextTypeName="AdventureWorksLTDataContext" > </asp:LinqDataSource> </form> </body> </html>
using System; using System.Web.DynamicData; using System.ComponentModel.DataAnnotations; using System.ComponentModel; [MetadataType(typeof(ProductMetaData))] public partial class Product { } public class ProductMetaData { }
To compile the example, you need the following:
Microsoft Visual Studio 2008 Service Pack 1 or Visual Web Developer 2008 Express Edition Service Pack 1.
The AdventureWorksLT sample database. For information about how to download and install the SQL Server sample database, see Microsoft SQL Server Product Samples: Database on the CodePlex site. Make sure that you install the correct version of the sample database for the version of SQL Server that you are running (Microsoft SQL Server 2005 or Microsoft SQL Server 2008).
A Dynamic Data Web site. This enables you to create a data context for the database and to create the class that contains the data field to customize and the methods to override. For more information, see Walkthrough: Creating a New Dynamic Data Web Site using Scaffolding.
Run an online example of this feature.
- AspNetHostingPermission
for operating in a hosted environment. Security action: LinkDemand. Associated enumeration: AspNetHostingPermissionLevel.Minimal
- AspNetHostingPermission
for operating in a hosted environment. Security action: InheritanceDemand. Associated enumeration: AspNetHostingPermissionLevel.Minimal
Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.