Compartilhar via


MetaModel Classe

Definição

Representa um ou vários bancos de dados que são usados por Dados Dinâmicos do ASP.NET.

public ref class MetaModel
public class MetaModel
type MetaModel = class
Public Class MetaModel
Herança
MetaModel

Exemplos

O exemplo a seguir mostra como usar MetaModel o tipo para executar as seguintes tarefas para usar o scaffolding automático em um site ASP.NET:

  • Obtenha o modelo de dados para o contexto de dados padrão.

  • Obtenha o modelo de dados para um contexto de dados especificado.

  • Avalie o caminho de roteamento (determine a URL) para uma tabela especificada.

O exemplo consiste em uma página e seu arquivo code-behind.

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 o exemplo, você precisa do seguinte:

Confira um exemplo de código em tempo de execução deste recurso: Executar.

Comentários

O MetaModel tipo permite registrar um ou vários contextos de dados para um aplicativo Web de Dados Dinâmicos.

Um contexto de dados é um objeto que representa uma conexão de banco de dados. Um contexto de dados tem acesso a um modelo de dados que representa um banco de dados que está disponível por meio dessa conexão. Um modelo de dados é um objeto que representa as entidades de dados de um banco de dados como tipos CLR. O Dynamic Data dá suporte a modelos de dados baseados em LINQ to SQL e no ADO.NET Entity Framework.

No Visual Studio, você pode gerar tipos de modelo de dados usando o modelo de Classes LINQ to SQL ou o modelo ADO.NET Entity Data Model . Esses modelos usam o Designer Relacional de Objeto (Designer O/R) para o modelo LINQ to SQL ou o Designer de Modelo de Dados de Entidade ADO.NET (Designer de Entidade) para o modelo Entity Framework.

Construtores

MetaModel()

Cria uma nova instância da classe MetaModel.

MetaModel(Boolean)

Cria uma nova instância da classe MetaModel.

Propriedades

Default

Obtém a primeira instância de um modelo de dados que é criada pelo aplicativo.

DynamicDataFolderVirtualPath

Obtém ou define o caminho virtual da pasta DynamicData no site.

EntityTemplateFactory

Obtém ou define o objeto EntityTemplateFactory associado ao modelo.

FieldTemplateFactory

Obtém ou define uma interface IFieldTemplateFactory personalizada.

FilterFactory

Obtém ou define o objeto FilterFactory associado ao modelo.

Tables

Obtém uma coleção de todas as tabelas que fazem parte do modelo de dados.

VisibleTables

Obtém uma coleção das tabelas visíveis no modelo de dados.

Métodos

CreateTable(TableProvider)

Instancia um objeto MetaTable.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetActionPath(String, String, Object)

Retorna o caminho da ação associado a uma tabela específica.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetModel(Type)

Retorna a instância de modelo de dados para o contexto especificado.

GetTable(String)

Retorna os metadados associados à tabela especificada.

GetTable(String, Type)

Retorna os metadados que descrevem a tabela especificada.

GetTable(Type)

Retorna os metadados que descrevem a tabela especificada.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
RegisterContext(DataModelProvider)

Registra uma instância de contexto de dados usando um provedor de modelo de dados.

RegisterContext(DataModelProvider, ContextConfiguration)

Registra uma instância de contexto de dados usando a configuração de contexto especificada e habilitando um provedor de modelo de dados.

RegisterContext(Func<Object>)

Registra o contexto de dados que é especificado por um alocador de contexto.

RegisterContext(Func<Object>, ContextConfiguration)

Registra uma instância de contexto de dados usando a configuração de contexto especificada e habilitando um construtor personalizado.

RegisterContext(Type)

Registra uma instância de contexto de dados.

RegisterContext(Type, ContextConfiguration)

Registra uma instância de contexto de dados usando a configuração de contexto especificada.

ResetRegistrationException()

Redefine qualquer erro de registro de contexto anterior que pode ter ocorrido.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
TryGetTable(String, MetaTable)

Tenta obter os metadados associados à tabela especificada.

TryGetTable(Type, MetaTable)

Tenta obter os metadados associados à tabela especificada.

Aplica-se a

Confira também