MetaModel Класс

Определение

Представляет одну или несколько баз данных, используемых платформой динамических данных ASP.NET.Represents one or multiple databases that are used by ASP.NET Dynamic Data.

public ref class MetaModel
public class MetaModel
type MetaModel = class
Public Class MetaModel
Наследование
MetaModel

Примеры

В следующем примере показано, как использовать тип MetaModel для выполнения следующих задач с целью использования автоматического формирования шаблонов на веб-сайте ASP.NET.The following example shows how to use MetaModel type to perform the following tasks in order to use automatic scaffolding in an ASP.NET Web site:

  • Получение модели данных для контекста данных по умолчанию.Get the data model for the default data context.

  • Получение модели данных для указанного контекста данных.Get the data model for a specified data context.

  • Вычисление пути маршрутизации (определение URL-адреса) для указанной таблицы.Evaluate the routing path (determine the URL) for a specified table.

Пример состоит из страницы и файла кода программной части.The example consists of a page and its code-behind file.

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

Чтобы скомпилировать пример, вам потребуется следующее:To compile the example, you need the following:

  • Visual Studio 2010Visual Studio 2010 или Visual Web Developer 2010, экспресс-выпускVisual Web Developer 2010 Express.or Visual Web Developer 2010, экспресс-выпускVisual Web Developer 2010 Express.

  • Веб-сайт платформа динамических данных.A Dynamic Data Web site. Дополнительные сведения см. в разделе [Пошаговое руководство: Создание нового платформа динамических данных веб-сайта с помощью формирования шаблонов @ no__t-0.For more information, see Walkthrough: Creating a New Dynamic Data Web Site Using Scaffolding.

См. пример кода времени выполнения этой функции: Выполните команду.See a run-time code example of this feature: Run.

Комментарии

Тип MetaModel позволяет зарегистрировать один или несколько контекстов данных для платформа динамических данных веб-приложения.The MetaModel type lets you register one or multiple data contexts for a Dynamic Data Web application.

Контекст данных — это объект, представляющий подключение к базе данных.A data context is an object that represents a database connection. Контекст данных имеет доступ к одной модели данных, которая представляет базу данных, доступную через это соединение.A data context has access to one data model which represents a database that is available through that connection. Модель данных — это объект, представляющий сущности данных базы данных в виде типов CLR.A data model is an object that represents a database's data entities as CLR types. Платформа динамических данных поддерживает модели данных на основе LINQ to SQL и Entity Framework ADO.NET.Dynamic Data supports data models based on LINQ to SQL and on the ADO.NET Entity Framework.

В Visual Studio типы моделей данных можно создавать с помощью шаблона LINQ to SQL классы или шаблона EDM ADO.NET .In Visual Studio, you can generate data-model types by using the LINQ to SQL Classes template or the ADO.NET Entity Data Model template. Эти шаблоны используют реляционный конструктор объектов (реляционный конструктор R) для модели LINQ to SQL или конструктор EDM ADO.NET (Entity Designer) для модели Entity Framework.These templates use the Object Relational Designer (O/R Designer) for the LINQ to SQL model, or the ADO.NET Entity Data Model Designer (Entity Designer) for the Entity Framework model.

Конструкторы

MetaModel()

Создает новый экземпляр класса MetaModel.Instantiates a new instance of the MetaModel class.

MetaModel(Boolean)

Создает новый экземпляр класса MetaModel.Instantiates a new instance of the MetaModel class.

Свойства

Default

Возвращает первый экземпляр модели данных, созданной приложением.Gets the first instance of a data model that is created by the application.

DynamicDataFolderVirtualPath

Возвращает или задает виртуальный путь к папке DynamicData веб-узла.Gets or sets the virtual path of the DynamicData folder in the Web site.

EntityTemplateFactory

Получает или задает объект EntityTemplateFactory, связанный с моделью.Gets or sets the EntityTemplateFactory object that is associated with the model.

FieldTemplateFactory

Возвращает или задает пользовательский интерфейс IFieldTemplateFactory.Gets or sets a custom IFieldTemplateFactory interface.

FilterFactory

Получает или задает объект FilterFactory, связанный с моделью.Gets or sets the FilterFactory object that is associated with the model.

Tables

Возвращает коллекцию всех таблиц, входящих в состав модели данных.Gets a collection of all the tables that are part of the data model.

VisibleTables

Возвращает коллекцию видимых таблиц в модели данных.Gets a collection of the visible tables in the data model.

Методы

CreateTable(TableProvider)

Создает объект MetaTable.Instantiates a MetaTable object.

Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetActionPath(String, String, Object)

Возвращает путь действия, связанного с определенной таблицей.Returns the action path that is associated with a specific table.

GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetModel(Type)

Возвращает экземпляр модели данных для заданного контекста.Returns the data-model instance for the specified context.

GetTable(String)

Возвращает метаданные, связанные с заданной таблицей.Returns the metadata that is associated with the specified table.

GetTable(String, Type)

Возвращает метаданные, описывающие заданную таблицу.Returns the metadata that describes the specified table.

GetTable(Type)

Возвращает метаданные, описывающие заданную таблицу.Returns the metadata that describes the specified table.

GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
RegisterContext(DataModelProvider)

Регистрирует экземпляр контекста данных, используя поставщик модели данных.Registers a data context instance by using a data-model provider.

RegisterContext(DataModelProvider, ContextConfiguration)

Регистрирует экземпляр контекста данных, используя заданную конфигурацию контекста и разрешив использование поставщика модели данных.Registers a data-context instance by using the specified context configuration and by enabling a data-model provider.

RegisterContext(Func<Object>)

Регистрирует контекст данных, заданный фабрикой контекста.Registers the data context that is specified by a context factory.

RegisterContext(Func<Object>, ContextConfiguration)

Регистрирует экземпляр контекста данных, используя заданную конфигурацию контекста и разрешив пользовательский конструктор.Registers a data-context instance by using the specified context configuration and by enabling a custom constructor.

RegisterContext(Type)

Регистрирует экземпляр контекста данных.Registers a data-context instance.

RegisterContext(Type, ContextConfiguration)

Регистрирует экземпляр контекста данных, используя заданную конфигурацию контекста.Registers a data-context instance by using the specified context configuration.

ResetRegistrationException()

Сбрасывает предыдущую ошибку регистрации контекста, которая могла произойти.Resets any previous context registration error that might have occurred.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)
TryGetTable(String, MetaTable)

Пытается получить метаданные, связанные с заданной таблицей.Attempts to get the metadata that is associated with the specified table.

TryGetTable(Type, MetaTable)

Пытается получить метаданные, связанные с заданной таблицей.Attempts to get the metadata that is associated with the specified table.

Применяется к

Дополнительно