MetaModel Classe

Définition

Représente une ou plusieurs bases de données utilisées par Dynamic Data ASP.NET.

public ref class MetaModel
public class MetaModel
type MetaModel = class
Public Class MetaModel
Héritage
MetaModel

Exemples

L’exemple suivant montre comment utiliser MetaModel le type pour effectuer les tâches suivantes afin d’utiliser une structure automatique dans un site Web ASP.NET :

  • Obtenez le modèle de données pour le contexte de données par défaut.

  • Obtenez le modèle de données pour un contexte de données spécifié.

  • Évaluez le chemin d’acheminement (déterminez l’URL) d’une table spécifiée.

L’exemple se compose d’une page et de son fichier 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

Pour compiler l’exemple, vous avez besoin des éléments suivants :

Consultez un exemple de code d’exécution de cette fonctionnalité : Exécuter.

Remarques

Le MetaModel type vous permet d’inscrire un ou plusieurs contextes de données pour une application web de données dynamiques.

Un contexte de données est un objet qui représente une connexion de base de données. Un contexte de données a accès à un modèle de données qui représente une base de données disponible via cette connexion. Un modèle de données est un objet qui représente les entités de données d’une base de données en tant que types CLR. Dynamic Data prend en charge les modèles de données basés sur LINQ to SQL et sur le ADO.NET Entity Framework.

Dans Visual Studio, vous pouvez générer des types de modèle de données à l’aide du modèle LINQ to SQL Classes ou du modèle de données d’entité ADO.NET . Ces modèles utilisent le Concepteur relationnel d’objets (Concepteur O/R) pour le modèle LINQ to SQL ou le concepteur de modèle de données d’entité ADO.NET (Concepteur d’entités) pour le modèle Entity Framework.

Constructeurs

MetaModel()

Instancie une nouvelle instance de la classe MetaModel.

MetaModel(Boolean)

Instancie une nouvelle instance de la classe MetaModel.

Propriétés

Default

Obtient la première instance d'un modèle de données créé par l'application.

DynamicDataFolderVirtualPath

Obtient ou définit le chemin d'accès virtuel du dossier DynamicData dans le site Web.

EntityTemplateFactory

Obtient ou définit l'objet EntityTemplateFactory associé au modèle.

FieldTemplateFactory

Obtient ou définit une interface IFieldTemplateFactory personnalisée.

FilterFactory

Obtient ou définit l'objet FilterFactory associé au modèle.

Tables

Obtient une collection de toutes les tables qui font partie du modèle de données.

VisibleTables

Obtient une collection des tables visibles dans le modèle de données.

Méthodes

CreateTable(TableProvider)

Instancie un objet MetaTable.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetActionPath(String, String, Object)

Retourne le chemin d'accès de l'action associé à une table spécifique.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetModel(Type)

Retourne l'instance de modèle de données pour le contexte spécifié.

GetTable(String)

Retourne les métadonnées associées à la table spécifiée.

GetTable(String, Type)

Retourne les métadonnées qui décrivent la table spécifiée.

GetTable(Type)

Retourne les métadonnées qui décrivent la table spécifiée.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
RegisterContext(DataModelProvider)

Inscrit une instance du contexte de données à l’aide d’un fournisseur de modèles de données.

RegisterContext(DataModelProvider, ContextConfiguration)

Enregistre une instance de contexte de données à l'aide de la configuration de contexte spécifié et en activant un fournisseur de modèle de données.

RegisterContext(Func<Object>)

Enregistre le contexte de données spécifié par une fabrique de contextes.

RegisterContext(Func<Object>, ContextConfiguration)

Enregistre une instance de contexte de données à l'aide de la configuration de contexte spécifié et en activant un constructeur personnalisé.

RegisterContext(Type)

Enregistre une instance de contexte de données.

RegisterContext(Type, ContextConfiguration)

Enregistre une instance de contexte de données à l'aide de la configuration de contexte spécifiée.

ResetRegistrationException()

Réinitialise une erreur d'inscription du contexte qui s'est produite précédemment.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
TryGetTable(String, MetaTable)

Tente d'obtenir les métadonnées associées à la table spécifiée.

TryGetTable(Type, MetaTable)

Tente d'obtenir les métadonnées associées à la table spécifiée.

S’applique à

Voir aussi