MetaModel Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa una o varias bases de datos que usan ASP.NET datos dinámicos.
public ref class MetaModel
public class MetaModel
type MetaModel = class
Public Class MetaModel
- Herencia
-
MetaModel
Ejemplos
En el ejemplo siguiente se muestra cómo usar MetaModel tipo para realizar las siguientes tareas con el fin de usar scaffolding automático en un sitio web de ASP.NET:
- Obtenga el modelo de datos para el contexto de datos predeterminado.
- Obtenga el modelo de datos para un contexto de datos especificado.
- Evalúe la ruta de enrutamiento (determine la dirección URL) de una tabla especificada.
El ejemplo consta de una página y su archivo de código subyacente.
using System;
using System.Web.DynamicData;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
[MetadataType(typeof(ProductMetaData))]
public partial class Product
{
}
public class ProductMetaData
{
}
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="PathModel.aspx.cs"
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 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>
<%@ 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>
Imports System.Web.DynamicData
Imports System.ComponentModel.DataAnnotations
Imports System.ComponentModel
<MetadataType(GetType(ProductMetaData))> _
Partial Public Class Product
End Class
Public Class ProductMetaData
End Class
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.DynamicData;
public partial class PathModel : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DynamicDataManager1.RegisterControl(GridDataSource1);
}
// Get the data model.
public MetaModel GetModel(bool defaultModel)
{
MetaModel model;
if (defaultModel)
model = MetaModel.Default;
else
model =
MetaModel.GetModel(typeof(AdventureWorksLTDataContext));
return model;
}
// Get the registered action path.
public string EvaluateActionPath()
{
string tableName = LinqDataSource1.TableName;
MetaModel model = GetModel(false);
string actionPath =
model.GetActionPath(tableName,
System.Web.DynamicData.PageAction.List, GetDataItem());
return actionPath;
}
}
Imports System.Collections
Imports System.Configuration
Imports System.Data
Imports System.Linq
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.HtmlControls
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Xml.Linq
Imports System.Web.DynamicData
Partial Public Class PathModel
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
DynamicDataManager1.RegisterControl(GridDataSource1)
End Sub
' Get the data model.
Public Function GetModel(ByVal defaultModel As Boolean) As MetaModel
Dim model As MetaModel
If defaultModel Then
model = MetaModel.[Default]
Else
model = MetaModel.GetModel(GetType(AdventureWorksLTDataContext))
End If
Return model
End Function
' Get the registered action path.
Public Function EvaluateActionPath() As String
Dim tableName As String = LinqDataSource1.TableName
Dim model As MetaModel = GetModel(False)
Dim actionPath As String = model.GetActionPath(tableName, System.Web.DynamicData.PageAction.List, GetDataItem())
Return actionPath
End Function
End Class
Para compilar el ejemplo, necesita lo siguiente:
- Visual Studio 2010 o Visual Web Developer 2010 Express.
- Un sitio web de datos dinámicos. Para obtener más información, vea Tutorial: Creación de un nuevo sitio web de datos dinámicos mediante scaffolding.
Comentarios
El MetaModel tipo permite registrar uno o varios contextos de datos para una aplicación web de datos dinámicos.
Un contexto de datos es un objeto que representa una conexión de base de datos. Un contexto de datos tiene acceso a un modelo de datos que representa una base de datos que está disponible a través de esa conexión. Un modelo de datos es un objeto que representa las entidades de datos de una base de datos como tipos CLR. Dynamic Data admite modelos de datos basados en LINQ to SQL y en ADO.NET Entity Framework.
En Visual Studio, puede generar tipos de modelo de datos mediante la plantilla LINQ to SQL Classes o la plantilla ADO.NET Entity Data Model. Estas plantillas usan el Diseñador relacional de objetos (Diseñador de O/R) para el modelo LINQ to SQL o el Diseñador de modelos de datos de entidad (Entity Model Designer) de ADO.NET para el modelo de Entity Framework.
Constructores
| Nombre | Description |
|---|---|
| MetaModel() |
Crea una instancia nueva de la MetaModel clase . |
| MetaModel(Boolean) |
Crea una instancia nueva de la MetaModel clase . |
Propiedades
| Nombre | Description |
|---|---|
| Default |
Obtiene la primera instancia de un modelo de datos creado por la aplicación. |
| DynamicDataFolderVirtualPath |
Obtiene o establece la ruta de acceso virtual de la carpeta DynamicData del sitio web. |
| EntityTemplateFactory |
Obtiene o establece el EntityTemplateFactory objeto asociado al modelo. |
| FieldTemplateFactory |
Obtiene o establece una interfaz personalizada IFieldTemplateFactory . |
| FilterFactory |
Obtiene o establece el FilterFactory objeto asociado al modelo. |
| Tables |
Obtiene una colección de todas las tablas que forman parte del modelo de datos. |
| VisibleTables |
Obtiene una colección de las tablas visibles en el modelo de datos. |
Métodos
| Nombre | Description |
|---|---|
| CreateTable(TableProvider) |
Crea instancias de un objeto MetaTable. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetActionPath(String, String, Object) |
Devuelve la ruta de acceso de acción asociada a una tabla específica. |
| GetHashCode() |
Actúa como la función hash predeterminada. (Heredado de Object) |
| GetModel(Type) |
Devuelve la instancia del modelo de datos para el contexto especificado. |
| GetTable(String, Type) |
Devuelve los metadatos que describen la tabla especificada. |
| GetTable(String) |
Devuelve los metadatos asociados a la tabla especificada. |
| GetTable(Type) |
Devuelve los metadatos que describen la tabla especificada. |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| RegisterContext(DataModelProvider, ContextConfiguration) |
Registra una instancia de contexto de datos mediante la configuración de contexto especificada y habilitando un proveedor de modelos de datos. |
| RegisterContext(DataModelProvider) |
Registra una instancia de contexto de datos mediante un proveedor de modelos de datos. |
| RegisterContext(Func<Object>, ContextConfiguration) |
Registra una instancia de contexto de datos mediante la configuración de contexto especificada y habilitando un constructor personalizado. |
| RegisterContext(Func<Object>) |
Registra el contexto de datos especificado por un generador de contextos. |
| RegisterContext(Type, ContextConfiguration) |
Registra una instancia de contexto de datos mediante la configuración de contexto especificada. |
| RegisterContext(Type) |
Registra una instancia de contexto de datos. |
| ResetRegistrationException() |
Restablece cualquier error de registro de contexto anterior que se haya producido. |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
| TryGetTable(String, MetaTable) |
Intenta obtener los metadatos asociados a la tabla especificada. |
| TryGetTable(Type, MetaTable) |
Intenta obtener los metadatos asociados a la tabla especificada. |