MetaModel Klasa

Definicja

Reprezentuje jedną lub wiele baz danych, które są używane 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 korzystania z 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 za pomocą 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:

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. Dynamiczne dane obsługują modele danych na podstawie LINQ to SQL i ADO.NET Entity Framework.

W programie Visual Studio można wygenerować typy modeli danych przy użyciu szablonu klasy LINQ to SQL lub szablonu modelu danych jednostek ADO.NET. Te szablony używają Object Relational Designer (O/R Designer) dla modelu LINQ to SQL lub ADO.NET Entity Data Model Designer (Entity Model 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)

MetaTable Tworzy wystąpienie 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 bieżące wystąpienie.

(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ę kontekstową.

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ą.

Dotyczy

Zobacz też