MetaModel Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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:
Visual Studio 2010 o Visual Web Developer 2010 Express.
Sito Web Dinamico dei dati. Per altre informazioni, vedere Procedura dettagliata: Creazione di un nuovo sito Web di dati dinamici tramite Scaffolding.
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. |