MetaModel Třída

Definice

Představuje jednu nebo více databází, které používají dynamická data ASP.NET.

public ref class MetaModel
public class MetaModel
type MetaModel = class
Public Class MetaModel
Dědičnost
MetaModel

Příklady

Následující příklad ukazuje, jak použít MetaModel typ k provedení následujících úloh, aby bylo možné použít automatické generování na webu ASP.NET:

  • Získejte datový model pro výchozí kontext dat.

  • Získejte datový model pro zadaný kontext dat.

  • Vyhodnoťte cestu směrování (určete adresu URL) pro zadanou tabulku.

Příklad se skládá ze stránky a jejího souboru s kódem.

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

K kompilaci příkladu potřebujete následující:

Podívejte se na příklad kódu za běhu této funkce: Spustit.

Poznámky

Tento MetaModel typ umožňuje zaregistrovat jeden nebo více kontextů dat pro webovou aplikaci s dynamickými daty.

Kontext dat je objekt, který představuje připojení k databázi. Kontext dat má přístup k jednomu datovému modelu, který představuje databázi, která je k dispozici prostřednictvím tohoto připojení. Datový model je objekt, který představuje datové entity databáze jako typy CLR. Dynamická data podporují datové modely založené na LINQ to SQL a na ADO.NET Entity Frameworku.

V Visual Studio můžete generovat typy datového modelu pomocí šablony LINQ to SQL Tříd nebo šablony ADO.NET Entity Data Model. Tyto šablony používají Návrhář relací objektů (O/R Designer) pro model LINQ to SQL nebo návrháře ADO.NET Entity Data Model Designer (Entity Designer) pro model Entity Framework.

Konstruktory

MetaModel()

Vytvoří instanci nové instance MetaModel třídy.

MetaModel(Boolean)

Vytvoří instanci nové instance MetaModel třídy.

Vlastnosti

Default

Získá první instanci datového modelu vytvořeného aplikací.

DynamicDataFolderVirtualPath

Získá nebo nastaví virtuální cestu složky DynamicData na webu.

EntityTemplateFactory

Získá nebo nastaví EntityTemplateFactory objekt, který je přidružen k modelu.

FieldTemplateFactory

Získá nebo nastaví vlastní IFieldTemplateFactory rozhraní.

FilterFactory

Získá nebo nastaví FilterFactory objekt, který je přidružen k modelu.

Tables

Získá kolekci všech tabulek, které jsou součástí datového modelu.

VisibleTables

Získá kolekci viditelných tabulek v datovém modelu.

Metody

CreateTable(TableProvider)

Vytvoří instanci objektu MetaTable .

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetActionPath(String, String, Object)

Vrátí cestu akce přidruženou ke konkrétní tabulce.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetModel(Type)

Vrátí instanci datového modelu pro zadaný kontext.

GetTable(String)

Vrátí metadata přidružená k zadané tabulce.

GetTable(String, Type)

Vrátí metadata, která popisují zadanou tabulku.

GetTable(Type)

Vrátí metadata, která popisují zadanou tabulku.

GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
RegisterContext(DataModelProvider)

Zaregistruje instanci kontextu dat pomocí zprostředkovatele datového modelu.

RegisterContext(DataModelProvider, ContextConfiguration)

Zaregistruje instanci kontextu dat pomocí zadané konfigurace kontextu a povolením zprostředkovatele datového modelu.

RegisterContext(Func<Object>)

Zaregistruje kontext dat určený kontextovou továrnou.

RegisterContext(Func<Object>, ContextConfiguration)

Zaregistruje instanci kontextu dat pomocí zadané konfigurace kontextu a povolením vlastního konstruktoru.

RegisterContext(Type)

Zaregistruje instanci kontextu dat.

RegisterContext(Type, ContextConfiguration)

Zaregistruje instanci kontextu dat pomocí zadané konfigurace kontextu.

ResetRegistrationException()

Obnoví všechny předchozí chyby registrace kontextu, ke kterým mohlo dojít.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
TryGetTable(String, MetaTable)

Pokusí se získat metadata přidružená k zadané tabulce.

TryGetTable(Type, MetaTable)

Pokusí se získat metadata přidružená k zadané tabulce.

Platí pro

Viz také