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 dynamischen Daten verwendet werden.
public ref class MetaModel
public class MetaModel
type MetaModel = class
Public Class MetaModel
- Vererbung
-
MetaModel
Beispiele
Das folgende Beispiel zeigt, wie Sie MetaModel Typ verwenden, um die folgenden Aufgaben auszuführen, um das automatische Gerüst in 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.
- Auswerten des Routingpfads (Bestimmen der 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 Website für dynamische Daten. Weitere Informationen finden Sie unter Walkthrough: Creating a New Dynamic Data Web Site Using Scaffolding.
Hinweise
Mit dem MetaModel Typ können Sie einen oder mehrere Datenkontexte für eine Dynamische Datenwebanwendung 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. Dynamische Daten unterstützen Datenmodelle, die auf LINQ to SQL und auf ADO.NET Entity Framework basieren.
In Visual Studio können Sie Datenmodelltypen mithilfe der Vorlage LINQ to SQL Classes oder der Vorlage ADO.NET Entity Data Model generieren. Diese Vorlagen verwenden den Objektrelational-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
| Name | Beschreibung |
|---|---|
| MetaModel() |
Instanziiert eine neue Instanz der MetaModel Klasse. |
| MetaModel(Boolean) |
Instanziiert eine neue Instanz der MetaModel Klasse. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Default |
Ruft die erste Instanz eines Datenmodells ab, das von der Anwendung erstellt wird. |
| DynamicDataFolderVirtualPath |
Dient zum Abrufen oder Festlegen des virtuellen Pfads des DynamicData-Ordners auf der Website. |
| EntityTemplateFactory |
Ruft ab oder legt das EntityTemplateFactory Objekt fest, das dem Modell zugeordnet ist. |
| FieldTemplateFactory |
Dient zum Abrufen oder Festlegen einer benutzerdefinierten IFieldTemplateFactory Schnittstelle. |
| FilterFactory |
Ruft ab oder legt das FilterFactory Objekt fest, das dem Modell zugeordnet ist. |
| Tables |
Ruft eine Auflistung aller Tabellen ab, die Teil des Datenmodells sind. |
| VisibleTables |
Ruft eine Auflistung der sichtbaren Tabellen im Datenmodell ab. |
Methoden
| Name | Beschreibung |
|---|---|
| CreateTable(TableProvider) |
Instanziiert ein MetaTable-Objekt. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetActionPath(String, String, Object) |
Gibt den Aktionspfad zurück, der einer bestimmten Tabelle zugeordnet ist. |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetModel(Type) |
Gibt die Datenmodellinstanz für den angegebenen Kontext zurück. |
| GetTable(String, Type) |
Gibt die Metadaten zurück, die die angegebene Tabelle beschreiben. |
| GetTable(String) |
Gibt die Metadaten zurück, die der angegebenen Tabelle zugeordnet sind. |
| GetTable(Type) |
Gibt die Metadaten zurück, die die angegebene Tabelle beschreiben. |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| RegisterContext(DataModelProvider, ContextConfiguration) |
Registriert eine Datenkontextinstanz mithilfe der angegebenen Kontextkonfiguration und durch Aktivieren eines Datenmodellanbieters. |
| RegisterContext(DataModelProvider) |
Registriert eine Datenkontextinstanz mithilfe eines Datenmodellanbieters. |
| RegisterContext(Func<Object>, ContextConfiguration) |
Registriert eine Datenkontextinstanz mithilfe der angegebenen Kontextkonfiguration und durch Aktivieren eines benutzerdefinierten Konstruktors. |
| RegisterContext(Func<Object>) |
Registriert den Datenkontext, der von einer Kontextfactory angegeben wird. |
| RegisterContext(Type, ContextConfiguration) |
Registriert eine Datenkontextinstanz mithilfe der angegebenen Kontextkonfiguration. |
| RegisterContext(Type) |
Registriert eine Datenkontextinstanz. |
| ResetRegistrationException() |
Setzt alle vorherigen Kontextregistrierungsfehler zurück, die möglicherweise aufgetreten sind. |
| 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. |