MetaModel Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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í:
Visual Studio 2010 nebo Visual Web Developer 2010 Express.
Web dynamických dat. Další informace najdete v tématu Návod: Vytvoření nového webu dynamických dat pomocí generování uživatelského rozhraní.
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. |