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 tipo per eseguire le attività seguenti per usare lo scaffolding automatico in un sito Web ASP.NET:
- Ottenere il modello di dati per il contesto dati predefinito.
- Ottenere il modello di dati per un contesto 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 Dynamic Data. Per altre informazioni, vedere Procedura dettagliata: Creazione di un nuovo sito Web di dati dinamici tramite scaffolding.
Commenti
Il MetaModel tipo consente di registrare uno o più contesti di dati per un'applicazione Web Dynamic Data.
Un contesto dati è un oggetto che rappresenta una connessione al database. Un contesto 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à di dati di un database come tipi CLR. Dynamic Data supporta modelli di dati basati su LINQ to SQL e su 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 Object Relational Designer (O/R Designer) per il modello LINQ to SQL o ADO.NET Entity Data Model Designer (Entity Designer) per il modello Entity Framework.
Costruttori
| Nome | Descrizione |
|---|---|
| MetaModel() |
Crea un'istanza di una nuova istanza della MetaModel classe . |
| MetaModel(Boolean) |
Crea un'istanza di una nuova istanza della MetaModel classe . |
Proprietà
| Nome | Descrizione |
|---|---|
| Default |
Ottiene la prima istanza di un modello di 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 personalizzata IFieldTemplateFactory . |
| FilterFactory |
Ottiene o imposta l'oggetto FilterFactory associato al modello. |
| Tables |
Ottiene una raccolta di tutte le tabelle che fanno parte del modello di dati. |
| VisibleTables |
Ottiene una raccolta delle tabelle visibili nel modello di dati. |
Metodi
| Nome | Descrizione |
|---|---|
| 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 dell'azione associato a una tabella specifica. |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetModel(Type) |
Restituisce l'istanza del modello di dati per il contesto specificato. |
| GetTable(String, Type) |
Restituisce i metadati che descrivono la tabella specificata. |
| GetTable(String) |
Restituisce i metadati associati alla tabella specificata. |
| GetTable(Type) |
Restituisce i metadati che descrivono la tabella specificata. |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| RegisterContext(DataModelProvider, ContextConfiguration) |
Registra un'istanza del contesto dati usando la configurazione del contesto specificata e abilitando un provider di modelli di dati. |
| RegisterContext(DataModelProvider) |
Registra un'istanza del contesto dati usando un provider di modelli di dati. |
| RegisterContext(Func<Object>, ContextConfiguration) |
Registra un'istanza del contesto dati usando la configurazione del contesto specificata e abilitando un costruttore personalizzato. |
| RegisterContext(Func<Object>) |
Registra il contesto dati specificato da una factory di contesto. |
| RegisterContext(Type, ContextConfiguration) |
Registra un'istanza del contesto dati usando la configurazione del contesto specificata. |
| RegisterContext(Type) |
Registra un'istanza del contesto dati. |
| ResetRegistrationException() |
Reimposta qualsiasi 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. |