Condividi tramite


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 il tipo per eseguire le attività seguenti per usare lo scaffolding automatico in un sito Web di ASP.NET:

  • Ottenere il modello di dati per il contesto di dati predefinito.

  • Ottenere il modello di dati per un contesto di 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:

Vedere un esempio di codice di runtime di questa funzionalità: Esegui.

Commenti

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

Un contesto di dati è un oggetto che rappresenta una connessione al database. Un contesto di 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à dati di un database come tipi CLR. I dati dinamici supportano modelli di dati basati su LINQ to SQL e sul 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 Progettazione oggetti relazionali (O/R Designer) per il modello LINQ to SQL o il modello Entity Data Designer (Entity Data Designer) ADO.NET per il modello Entity Framework.

Costruttori

MetaModel()

Crea una nuova istanza della classe MetaModel.

MetaModel(Boolean)

Crea una nuova istanza della classe MetaModel.

Proprietà

Default

Ottiene la prima istanza di un modello 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 IFieldTemplateFactory personalizzata.

FilterFactory

Ottiene o imposta l'oggetto FilterFactory associato al modello.

Tables

Ottiene un insieme di tutte le tabelle che fanno parte del modello dati.

VisibleTables

Ottiene un insieme delle tabelle visibili presenti nel modello dati.

Metodi

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 azione associato a una tabella specifica.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetModel(Type)

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

GetTable(String)

Restituisce i metadati associati alla tabella specificata.

GetTable(String, Type)

Restituisce i metadati che descrivono la tabella specificata.

GetTable(Type)

Restituisce i metadati che descrivono la tabella specificata.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
RegisterContext(DataModelProvider)

Registra un'istanza del contesto dei dati mediante un provider del modello dati.

RegisterContext(DataModelProvider, ContextConfiguration)

Registra un'istanza del contesto dati mediante la configurazione del contesto specificato e abilitando un provider del modello dati.

RegisterContext(Func<Object>)

Registra il contesto dati specificato da una factory del contesto.

RegisterContext(Func<Object>, ContextConfiguration)

Registra un'istanza del contesto dati mediante la configurazione del contesto specificato e abilitando un costruttore personalizzato.

RegisterContext(Type)

Registra un'istanza del contesto dati.

RegisterContext(Type, ContextConfiguration)

Registra un'istanza del contesto dati mediante la configurazione del contesto specificato.

ResetRegistrationException()

Reimposta un 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