MetaModel Classe

Definição

Representa uma ou várias bases de dados utilizadas pelo ASP.NET Dynamic Data.

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

Exemplos

O exemplo seguinte mostra como usar o tipo MetaModel para realizar as seguintes tarefas de modo a usar andaimes automáticos num site ASP.NET Web:

  • Obtenha o modelo de dados para o contexto de dados predefinido.
  • Obtenha o modelo de dados para um contexto de dados especificado.
  • Avalie o caminho de encaminhamento (determine a URL) para uma tabela especificada.

O exemplo consiste numa página e no seu ficheiro 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, precisa do seguinte:

Observações

O MetaModel tipo permite-lhe registar um ou vários contextos de dados para uma aplicação Web de Dados Dinâmicos.

Um contexto de dados é um objeto que representa uma ligação a uma base de dados. Um contexto de dados tem acesso a um modelo de dados que representa uma base de dados disponível através dessa ligação. Um modelo de dados é um objeto que representa as entidades de dados de uma base de dados como tipos CLR. A Dynamic Data suporta modelos de dados baseados em LINQ para SQL e no ADO.NET Entity Framework.

No Visual Studio, pode gerar tipos de modelos de dados utilizando o modelo LINQ to SQL Classes ou o modelo ADO.NET Entity Data Model. Estes modelos utilizam o Object Relational Designer (O/R Designer) para o modelo LINQ para SQL, ou o ADO.NET Entity Data Model Designer (Entity Designer) para o modelo Entity Framework.

Construtores

Name Description
MetaModel()

Instância de uma nova instância da MetaModel classe.

MetaModel(Boolean)

Instância de uma nova instância da MetaModel classe.

Propriedades

Name Description
Default

Obtém a primeira instância de um modelo de dados criado pela aplicação.

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

Recebe 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

Name 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)

Devolve o caminho de ação associado a uma tabela específica.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetModel(Type)

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

GetTable(String, Type)

Devolve os metadados que descrevem a tabela especificada.

GetTable(String)

Devolve os metadados associados à tabela especificada.

GetTable(Type)

Devolve 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 atual Object.

(Herdado de Object)
RegisterContext(DataModelProvider, ContextConfiguration)

Regista uma instância de contexto de dados utilizando a configuração de contexto especificada e ativando um fornecedor de modelos de dados.

RegisterContext(DataModelProvider)

Regista uma instância de contexto de dados utilizando um fornecedor de modelos de dados.

RegisterContext(Func<Object>, ContextConfiguration)

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

RegisterContext(Func<Object>)

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

RegisterContext(Type, ContextConfiguration)

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

RegisterContext(Type)

Regista uma instância de contexto de dados.

ResetRegistrationException()

Reinicia qualquer erro anterior de registo de contexto que possa ter ocorrido.

ToString()

Devolve uma cadeia 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

Ver também