Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

MetaModel-Klasse

Stellt eine oder mehrere Datenbanken dar, die von ASP.NET Dynamic Data verwendet werden.

System.Object
  System.Web.DynamicData.MetaModel

Namespace:  System.Web.DynamicData
Assembly:  System.Web.DynamicData (in System.Web.DynamicData.dll)
public class MetaModel

Der MetaModel-Typ macht die folgenden Member verfügbar.

  Name Beschreibung
Öffentliche Methode MetaModel() Instanziiert eine neue Instanz der MetaModel-Klasse.
Öffentliche Methode MetaModel(Boolean) Instanziiert eine neue Instanz der MetaModel-Klasse.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Eigenschaft Statischer Member Default Ruft die erste Instanz eines Datenmodells ab, die von der Anwendung erstellt wird.
Öffentliche Eigenschaft DynamicDataFolderVirtualPath Ruft den virtuellen Pfad des Ordners DynamicData auf der Website ab oder legt diesen fest.
Öffentliche Eigenschaft EntityTemplateFactory Ruft das EntityTemplateFactory-Objekt ab, das dem Modell zugeordnet ist, oder legt dieses fest.
Öffentliche Eigenschaft FieldTemplateFactory Ruft eine benutzerdefinierte IFieldTemplateFactory-Schnittstelle ab oder legt diese fest.
Öffentliche Eigenschaft FilterFactory Ruft das FilterFactory-Objekt ab, das dem Modell zugeordnet ist, oder legt dieses fest.
Öffentliche Eigenschaft Tables Ruft eine Auflistung aller Tabellen ab, die Teil des Datenmodells sind.
Öffentliche Eigenschaft VisibleTables Ruft eine Auflistung der sichtbaren Tabellen im Datenmodell ab.
Zum Seitenanfang
  Name Beschreibung
Geschützte Methode CreateTable Instanziiert ein MetaTable-Objekt.
Öffentliche Methode Equals(Object) Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Geschützte Methode Finalize Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.)
Öffentliche Methode GetActionPath Gibt den Aktionspfad zurück, der einer bestimmten Tabelle zugeordnet ist.
Öffentliche Methode GetHashCode Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Öffentliche Methode Statischer Member GetModel Gibt die Datenmodellinstanz für den angegebenen Kontext zurück.
Öffentliche Methode GetTable(String) Gibt die Metadaten zurück, die der angegebenen Tabelle zugeordnet sind.
Öffentliche Methode GetTable(Type) Gibt die Metadaten zurück, die die angegebene Tabelle beschreiben.
Öffentliche Methode GetTable(String, Type) Gibt die Metadaten zurück, die die angegebene Tabelle beschreiben.
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte Methode MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche Methode RegisterContext(DataModelProvider) Registriert mit einem Datenmodellanbieter eine Datenkontextinstanz.
Öffentliche Methode RegisterContext(Func<Object>) Registriert den Datenkontext, der von einer Kontextfactory angegeben wird.
Öffentliche Methode RegisterContext(Type) Registriert eine Datenkontextinstanz.
Öffentliche Methode RegisterContext(DataModelProvider, ContextConfiguration) Registriert mit der angegebenen Kontextkonfiguration und durch das Aktivieren eines Datenmodellanbieters eine Datenkontextinstanz.
Öffentliche Methode RegisterContext(Func<Object>, ContextConfiguration) Registriert mit der angegebenen Kontextkonfiguration und durch das Aktivieren eines benutzerdefinierten Konstruktors eine Datenkontextinstanz.
Öffentliche Methode RegisterContext(Type, ContextConfiguration) Registriert mit der angegebenen Kontextkonfiguration eine Datenkontextinstanz.
Öffentliche Methode Statischer Member ResetRegistrationException Setzt einen möglicherweise zuvor aufgetretenen Kontextregistrierungsfehler zurück.
Öffentliche Methode ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche Methode TryGetTable(String, MetaTable) Versucht, die Metadaten abzurufen, die der angegebenen Tabelle zugeordnet sind.
Öffentliche Methode TryGetTable(Type, MetaTable) Versucht, die Metadaten abzurufen, die der angegebenen Tabelle zugeordnet sind.
Zum Seitenanfang
Ausnahme Bedingung
InvalidOperationException

Kann von jeder Methode ausgelöst werden, wenn ein Datenkontextregistrierungsfehler aufgetreten ist.

Mit dem MetaModel-Typ können Sie einen oder mehrere Datenkontexte für eine Dynamic Data-Webanwendung registrieren.

Ein Datenkontext ist ein Objekt, das eine Datenbankverbindung darstellt. Ein Datenkontext verfügt über Zugriff auf ein Datenmodell, das eine Datenbank darstellt, auf die über diese Verbindung zugegriffen werden kann. Ein Datenmodell ist ein Objekt, das die Datenentitäten einer Datenbank als CLR-Typen darstellt. Dynamic Data unterstützt Datenmodelle auf der Grundlage von LINQ to SQL und des ADO.NET Entity Framework.

In Visual Studio 2010 können Sie Datenmodelltypen mit der Vorlage LINQ to SQL-Klassen oder der Vorlage ADO.NET Entity Data Model generieren. Diese Vorlagen verwenden den Object Relational Designer (O/R-Designer) für das LINQ to SQL-Modell bzw. den ADO.NET Entity Data Model-Designer (Entity Designer) für das Entity Framework-Modell.

Das folgende Beispiel veranschaulicht, wie mit dem MetaModel-Typ die folgenden Aufgaben ausgeführt werden, um auf einer ASP.NET-Website automatischen Gerüstbau zu verwenden:

  • Abrufen des Datenmodells für den Standarddatenkontext

  • Abrufen des Datenmodells für einen angegebenen Datenkontext

  • Auswerten des Routingpfads (Bestimmen der URL) für eine angegebene Tabelle

Das Beispiel besteht aus einer Seite und der zugehörigen Code-Behind-Datei.


<%@ 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>




<%@ 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>



using System;
using System.Web.DynamicData;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

[MetadataType(typeof(ProductMetaData))]
publicpartialclass Product
{

}


publicclass ProductMetaData
{



}
 


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;

publicpartialclass PathModel : System.Web.UI.Page
{
    protectedvoid 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.publicstring EvaluateActionPath()
    {
        string tableName = LinqDataSource1.TableName;

        MetaModel model = GetModel(false);

        string actionPath =
            model.GetActionPath(tableName,
                System.Web.DynamicData.PageAction.List, GetDataItem());
        return actionPath;
    }
}


Zum Kompilieren des Beispiels benötigen Sie Folgendes:

Ein Laufzeitcodebeispiel für dieses Feature finden Sie hier: Run.

.NET Framework

Unterstützt in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ