MetaModel Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje jedną lub wiele baz danych używanych przez ASP.NET danych dynamicznych.
public ref class MetaModel
public class MetaModel
type MetaModel = class
Public Class MetaModel
- Dziedziczenie
-
MetaModel
Przykłady
W poniższym przykładzie pokazano, jak używać MetaModel typu do wykonywania następujących zadań w celu użycia automatycznego tworzenia szkieletów w witrynie sieci Web ASP.NET:
Pobierz model danych dla domyślnego kontekstu danych.
Pobierz model danych dla określonego kontekstu danych.
Oceń ścieżkę routingu (określ adres URL) dla określonej tabeli.
Przykład składa się ze strony i jego pliku kodu.
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
Aby skompilować przykład, potrzebne są następujące elementy:
Visual Studio 2010 lub Visual Web Developer 2010 Express.
Witryna sieci Web danych dynamicznych. Aby uzyskać więcej informacji, zobacz Przewodnik: tworzenie nowej dynamicznej witryny sieci Web danych przy użyciu szkieletu.
Zobacz przykład kodu w czasie wykonywania tej funkcji: Uruchom.
Uwagi
Typ MetaModel umożliwia zarejestrowanie jednego lub wielu kontekstów danych dla aplikacji internetowej danych dynamicznych.
Kontekst danych to obiekt reprezentujący połączenie z bazą danych. Kontekst danych ma dostęp do jednego modelu danych, który reprezentuje bazę danych dostępną za pośrednictwem tego połączenia. Model danych to obiekt reprezentujący jednostki danych bazy danych jako typy CLR. Dane dynamiczne obsługują modele danych oparte na linQ to SQL i ADO.NET Entity Framework.
W programie Visual Studio można wygenerować typy modelu danych przy użyciu szablonu LINQ to SQL Classes lub szablonu modelu danych jednostek ADO.NET . Te szablony używają projektanta relacyjnego obiektów (O/R Designer) dla modelu LINQ to SQL lub ADO.NET Entity Data Model Designer (Entity Designer) dla modelu Entity Framework.
Konstruktory
MetaModel() |
Tworzy nowe wystąpienie klasy MetaModel. |
MetaModel(Boolean) |
Tworzy nowe wystąpienie klasy MetaModel. |
Właściwości
Default |
Pobiera pierwsze wystąpienie modelu danych utworzonego przez aplikację. |
DynamicDataFolderVirtualPath |
Pobiera lub ustawia ścieżkę wirtualną folderu DynamicData w witrynie sieci Web. |
EntityTemplateFactory |
Pobiera lub ustawia EntityTemplateFactory obiekt skojarzony z modelem. |
FieldTemplateFactory |
Pobiera lub ustawia interfejs niestandardowy IFieldTemplateFactory . |
FilterFactory |
Pobiera lub ustawia FilterFactory obiekt skojarzony z modelem. |
Tables |
Pobiera kolekcję wszystkich tabel, które są częścią modelu danych. |
VisibleTables |
Pobiera kolekcję widocznych tabel w modelu danych. |
Metody
CreateTable(TableProvider) |
Tworzy wystąpienie MetaTable obiektu. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetActionPath(String, String, Object) |
Zwraca ścieżkę akcji skojarzona z określoną tabelą. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetModel(Type) |
Zwraca wystąpienie modelu danych dla określonego kontekstu. |
GetTable(String) |
Zwraca metadane skojarzone z określoną tabelą. |
GetTable(String, Type) |
Zwraca metadane opisujące określoną tabelę. |
GetTable(Type) |
Zwraca metadane opisujące określoną tabelę. |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
RegisterContext(DataModelProvider) |
Rejestruje wystąpienie kontekstu danych przy użyciu dostawcy modelu danych. |
RegisterContext(DataModelProvider, ContextConfiguration) |
Rejestruje wystąpienie kontekstu danych przy użyciu określonej konfiguracji kontekstu i przez włączenie dostawcy modelu danych. |
RegisterContext(Func<Object>) |
Rejestruje kontekst danych określony przez fabrykę kontekstu. |
RegisterContext(Func<Object>, ContextConfiguration) |
Rejestruje wystąpienie kontekstu danych przy użyciu określonej konfiguracji kontekstu i przez włączenie konstruktora niestandardowego. |
RegisterContext(Type) |
Rejestruje wystąpienie kontekstu danych. |
RegisterContext(Type, ContextConfiguration) |
Rejestruje wystąpienie kontekstu danych przy użyciu określonej konfiguracji kontekstu. |
ResetRegistrationException() |
Resetuje wszystkie poprzednie błędy rejestracji kontekstu, które mogły wystąpić. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
TryGetTable(String, MetaTable) |
Próbuje pobrać metadane skojarzone z określoną tabelą. |
TryGetTable(Type, MetaTable) |
Próbuje pobrać metadane skojarzone z określoną tabelą. |