MetaModel Classe

Definizione

Rappresenta uno o più database utilizzati da ASP.NET Dynamic Data.

public ref class MetaModel
public class MetaModel
type MetaModel = class
Public Class MetaModel
Ereditarietà
MetaModel

Esempio

Nell'esempio seguente viene illustrato come usare MetaModel tipo per eseguire le attività seguenti per usare lo scaffolding automatico in un sito Web ASP.NET:

  • Ottenere il modello di dati per il contesto dati predefinito.
  • Ottenere il modello di dati per un contesto dati specificato.
  • Valutare il percorso di routing (determinare l'URL) per una tabella specificata.

L'esempio è costituito da una pagina e dal relativo file 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

Per compilare l'esempio, è necessario quanto segue:

Commenti

Il MetaModel tipo consente di registrare uno o più contesti di dati per un'applicazione Web Dynamic Data.

Un contesto dati è un oggetto che rappresenta una connessione al database. Un contesto dati ha accesso a un modello di dati che rappresenta un database disponibile tramite tale connessione. Un modello di dati è un oggetto che rappresenta le entità di dati di un database come tipi CLR. Dynamic Data supporta modelli di dati basati su LINQ to SQL e su ADO.NET Entity Framework.

In Visual Studio è possibile generare tipi di modello di dati usando il modello LINQ to SQL Classes o il modello ADO.NET Entity Data Model. Questi modelli usano Object Relational Designer (O/R Designer) per il modello LINQ to SQL o ADO.NET Entity Data Model Designer (Entity Designer) per il modello Entity Framework.

Costruttori

Nome Descrizione
MetaModel()

Crea un'istanza di una nuova istanza della MetaModel classe .

MetaModel(Boolean)

Crea un'istanza di una nuova istanza della MetaModel classe .

Proprietà

Nome Descrizione
Default

Ottiene la prima istanza di un modello di dati creato dall'applicazione.

DynamicDataFolderVirtualPath

Ottiene o imposta il percorso virtuale della cartella DynamicData nel sito Web.

EntityTemplateFactory

Ottiene o imposta l'oggetto EntityTemplateFactory associato al modello.

FieldTemplateFactory

Ottiene o imposta un'interfaccia personalizzata IFieldTemplateFactory .

FilterFactory

Ottiene o imposta l'oggetto FilterFactory associato al modello.

Tables

Ottiene una raccolta di tutte le tabelle che fanno parte del modello di dati.

VisibleTables

Ottiene una raccolta delle tabelle visibili nel modello di dati.

Metodi

Nome Descrizione
CreateTable(TableProvider)

Crea un'istanza di un oggetto MetaTable.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetActionPath(String, String, Object)

Restituisce il percorso dell'azione associato a una tabella specifica.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetModel(Type)

Restituisce l'istanza del modello di dati per il contesto specificato.

GetTable(String, Type)

Restituisce i metadati che descrivono la tabella specificata.

GetTable(String)

Restituisce i metadati associati alla tabella specificata.

GetTable(Type)

Restituisce i metadati che descrivono la tabella specificata.

GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
RegisterContext(DataModelProvider, ContextConfiguration)

Registra un'istanza del contesto dati usando la configurazione del contesto specificata e abilitando un provider di modelli di dati.

RegisterContext(DataModelProvider)

Registra un'istanza del contesto dati usando un provider di modelli di dati.

RegisterContext(Func<Object>, ContextConfiguration)

Registra un'istanza del contesto dati usando la configurazione del contesto specificata e abilitando un costruttore personalizzato.

RegisterContext(Func<Object>)

Registra il contesto dati specificato da una factory di contesto.

RegisterContext(Type, ContextConfiguration)

Registra un'istanza del contesto dati usando la configurazione del contesto specificata.

RegisterContext(Type)

Registra un'istanza del contesto dati.

ResetRegistrationException()

Reimposta qualsiasi errore di registrazione del contesto precedente che potrebbe essersi verificato.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
TryGetTable(String, MetaTable)

Tenta di ottenere i metadati associati alla tabella specificata.

TryGetTable(Type, MetaTable)

Tenta di ottenere i metadati associati alla tabella specificata.

Si applica a

Vedi anche