Sdílet prostřednictvím


MetaModel Třída

Definice

Představuje jednu nebo více databází, které jsou používány ASP.NET dynamických dat.

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í uživatelského rozhraní na webu ASP.NET:

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

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

  • 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 kódu na pozadí.

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

Typ MetaModel umožňuje zaregistrovat jeden nebo více kontextů dat pro webovou aplikaci dynamických dat.

Kontext dat je objekt, který představuje připojení k databázi. Datový kontext má přístup k jednomu datovému modelu, který představuje databázi, která je k dispozici prostřednictvím daného 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 Framework.

V sadě Visual Studio můžete generovat typy datového modelu pomocí šablony LINQ to SQL Classes nebo ADO.NET Entity Data Model . Tyto šablony používají návrháře relačního objektu (návrháře O/R) pro model LINQ to SQL nebo návrháře ADO.NET Entity Data Model (Návrhář entit) 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, který je vytvořen 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 k akci, která je přidružena ke konkrétní tabulce.

GetHashCode()

Slouží jako výchozí hashovací funkce.

(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()

Získá aktuální Type instanci.

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

Vytvoří mělkou kopii aktuálního Objectsouboru .

(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ý kontextem kontextové továrny.

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é