Compartir a través de


MetaModel Clase

Definición

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:

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.

Se aplica a

Consulte también