MetaModel Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine oder mehrere Datenbanken dar, die von ASP.NET Dynamic Data verwendet werden.
public ref class MetaModel
public class MetaModel
type MetaModel = class
Public Class MetaModel
- Vererbung
-
MetaModel
Beispiele
Das folgende Beispiel zeigt, wie Sie den Typ verwenden MetaModel , um die folgenden Aufgaben auszuführen, um das automatische Gerüstbau auf einer ASP.NET-Website zu verwenden:
Rufen Sie das Datenmodell für den Standarddatenkontext ab.
Rufen Sie das Datenmodell für einen angegebenen Datenkontext ab.
Bewerten Sie den Routingpfad (ermitteln Sie die URL) für eine angegebene Tabelle.
Das Beispiel besteht aus einer Seite und ihrer CodeBehind-Datei.
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
Zum Kompilieren des Beispiels benötigen Sie Folgendes:
Visual Studio 2010 oder Visual Web Developer 2010 Express
Eine Dynamic Data-Website. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen einer neuen Dynamic Data-Website mithilfe von Gerüsten.
Sehen Sie sich ein Laufzeitcodebeispiel für dieses Feature an: Ausführen.
Hinweise
Mit MetaModel dem 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 hat Zugriff auf ein Datenmodell, das eine Datenbank darstellt, die über diese Verbindung verfügbar ist. Ein Datenmodell ist ein Objekt, das die Datenentitäten einer Datenbank als CLR-Typen darstellt. Dynamic Data unterstützt Datenmodelle, die auf LINQ to SQL und dem ADO.NET Entity Framework basieren.
In Visual Studio können Sie Datenmodelltypen generieren, indem Sie die LINQ to SQL-Klassen-Vorlage oder die Vorlage ADO.NET Entitätsdatenmodell verwenden. Diese Vorlagen verwenden den Objekt relationalen Designer (O/R-Designer) für das LINQ to SQL-Modell oder den ADO.NET Entity Data Model Designer (Entity Designer) für das Entity Framework-Modell.
Konstruktoren
MetaModel() |
Instanziiert eine neue Instanz der MetaModel-Klasse. |
MetaModel(Boolean) |
Instanziiert eine neue Instanz der MetaModel-Klasse. |
Eigenschaften
Default |
Ruft die erste Instanz eines Datenmodells ab, die von der Anwendung erstellt wird. |
DynamicDataFolderVirtualPath |
Ruft den virtuellen Pfad des Ordners DynamicData auf der Website ab oder legt diesen fest. |
EntityTemplateFactory |
Ruft das EntityTemplateFactory-Objekt ab, das dem Modell zugeordnet ist, oder legt dieses fest. |
FieldTemplateFactory |
Ruft eine benutzerdefinierte IFieldTemplateFactory-Schnittstelle ab oder legt diese fest. |
FilterFactory |
Ruft das FilterFactory-Objekt ab, das dem Modell zugeordnet ist, oder legt dieses fest. |
Tables |
Ruft eine Auflistung aller Tabellen ab, die Teil des Datenmodells sind. |
VisibleTables |
Ruft eine Auflistung der sichtbaren Tabellen im Datenmodell ab. |
Methoden
CreateTable(TableProvider) |
Instanziiert ein MetaTable-Objekt. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetActionPath(String, String, Object) |
Gibt den Aktionspfad zurück, der einer bestimmten Tabelle zugeordnet ist. |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetModel(Type) |
Gibt die Datenmodellinstanz für den angegebenen Kontext zurück. |
GetTable(String) |
Gibt die Metadaten zurück, die der angegebenen Tabelle zugeordnet sind. |
GetTable(String, Type) |
Gibt die Metadaten zurück, die die angegebene Tabelle beschreiben. |
GetTable(Type) |
Gibt die Metadaten zurück, die die angegebene Tabelle beschreiben. |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
RegisterContext(DataModelProvider) |
Registriert mit einem Datenmodellanbieter eine Datenkontextinstanz. |
RegisterContext(DataModelProvider, ContextConfiguration) |
Registriert mit der angegebenen Kontextkonfiguration und durch das Aktivieren eines Datenmodellanbieters eine Datenkontextinstanz. |
RegisterContext(Func<Object>) |
Registriert den Datenkontext, der von einer Kontextfactory angegeben wird. |
RegisterContext(Func<Object>, ContextConfiguration) |
Registriert mit der angegebenen Kontextkonfiguration und durch das Aktivieren eines benutzerdefinierten Konstruktors eine Datenkontextinstanz. |
RegisterContext(Type) |
Registriert eine Datenkontextinstanz. |
RegisterContext(Type, ContextConfiguration) |
Registriert mit der angegebenen Kontextkonfiguration eine Datenkontextinstanz. |
ResetRegistrationException() |
Setzt einen möglicherweise zuvor aufgetretenen Kontextregistrierungsfehler zurück. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
TryGetTable(String, MetaTable) |
Versucht, die Metadaten abzurufen, die der angegebenen Tabelle zugeordnet sind. |
TryGetTable(Type, MetaTable) |
Versucht, die Metadaten abzurufen, die der angegebenen Tabelle zugeordnet sind. |