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 los datos dinámicos de ASP.NET usan.
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 el 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.
Obtiene el modelo de datos para un contexto de datos especificado.
Evalúe la ruta de acceso 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: Crear un nuevo sitio web de datos dinámicos mediante scaffolding.
Vea un ejemplo de código en tiempo de ejecución de esta característica: Ejecutar.
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. Los datos dinámicos admiten 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 (O/R Designer) 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
MetaModel() |
Crea una nueva instancia de la clase MetaModel. |
MetaModel(Boolean) |
Crea una nueva instancia de la clase MetaModel. |
Propiedades
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 en el sitio web. |
EntityTemplateFactory |
Obtiene o establece el objeto EntityTemplateFactory asociado al modelo. |
FieldTemplateFactory |
Obtiene o establece una interfaz IFieldTemplateFactory personalizada. |
FilterFactory |
Obtiene o establece el objeto FilterFactory 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 del modelo de datos. |
Métodos
CreateTable(TableProvider) |
Crea instancias de un objeto MetaTable. |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetActionPath(String, String, Object) |
Devuelve la ruta de acción que está asociada a una tabla concreta. |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetModel(Type) |
Devuelve la instancia del modelo de datos que corresponde al contexto especificado. |
GetTable(String) |
Devuelve los metadatos que están asociados a la tabla especificada. |
GetTable(String, Type) |
Devuelve los metadatos que describen 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 Object actual. (Heredado de Object) |
RegisterContext(DataModelProvider) |
Registra una instancia de contexto de datos mediante un proveedor de modelo de datos. |
RegisterContext(DataModelProvider, ContextConfiguration) |
Registra una instancia de contexto de datos con la configuración de contexto especificada, habilitando un proveedor de modelo de datos. |
RegisterContext(Func<Object>) |
Registra el contexto de datos especificado por un generador de contextos. |
RegisterContext(Func<Object>, ContextConfiguration) |
Registra una instancia de contexto de datos con la configuración de contexto especificada, habilitando un constructor personalizado. |
RegisterContext(Type) |
Registra una instancia de contexto de datos. |
RegisterContext(Type, ContextConfiguration) |
Registra una instancia de contexto de datos con la configuración de contexto especificada. |
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 que están asociados a la tabla especificada. |
TryGetTable(Type, MetaTable) |
Intenta obtener los metadatos que están asociados a la tabla especificada. |