MetaModel Classe

Definição

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

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 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:

Comentários

O MetaModel tipo permite que você registre 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 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.

Em Visual Studio, você pode gerar tipos de modelo de dados usando o modelo LINQ para classes SQL modelo 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 .NET ADO (Designer de Entidade) para o modelo da Estrutura de Entidade.

Construtores

Nome Description
MetaModel()

Cria uma instância nova da MetaModel classe.

MetaModel(Boolean)

Cria uma instância nova da MetaModel classe.

Propriedades

Nome Description
Default

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

DynamicDataFolderVirtualPath

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

EntityTemplateFactory

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

FieldTemplateFactory

Obtém ou define uma interface personalizada IFieldTemplateFactory .

FilterFactory

Obtém ou define o FilterFactory objeto 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

Nome Description
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 de ação associado a uma tabela específica.

GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetModel(Type)

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

GetTable(String, Type)

Retorna os metadados que descrevem a tabela especificada.

GetTable(String)

Retorna os metadados associados à 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 Objectatual.

(Herdado de Object)
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(DataModelProvider)

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

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(Func<Object>)

Registra o contexto de dados especificado por uma fábrica de contexto.

RegisterContext(Type, ContextConfiguration)

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

RegisterContext(Type)

Registra uma instância de contexto de dados.

ResetRegistrationException()

Redefine qualquer erro de registro de contexto anterior que possa 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