MetaModel Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет одну или несколько баз данных, используемых платформой динамических данных ASP.NET.
public ref class MetaModel
public class MetaModel
type MetaModel = class
Public Class MetaModel
- Наследование
-
MetaModel
Примеры
В следующем примере показано, как использовать MetaModel тип для выполнения следующих задач, чтобы использовать автоматическое формирование шаблонов на веб-сайте ASP.NET:
Получение модели данных для контекста данных по умолчанию.
Получение модели данных для указанного контекста данных.
Оцените путь маршрутизации (определите URL-адрес) для указанной таблицы.
Пример состоит из страницы и файла кода программной части.
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
Чтобы скомпилировать пример, вам потребуется следующее:
Visual Studio 2010 или Visual Web Developer 2010 Express.
Веб-сайт динамических данных. Дополнительные сведения см. в разделе Пошаговое руководство. Создание нового веб-сайта динамических данных с помощью формирования шаблонов.
См. пример кода во время выполнения этой функции: Выполнить.
Комментарии
Тип MetaModel позволяет зарегистрировать один или несколько контекстов данных для веб-приложения с динамическими данными.
Контекст данных — это объект, представляющий подключение к базе данных. Контекст данных имеет доступ к одной модели данных, которая представляет базу данных, доступную через это подключение. Модель данных — это объект, представляющий сущности данных базы данных в виде типов CLR. Динамические данные поддерживают модели данных на основе LINQ to SQL и ADO.NET Entity Framework.
В Visual Studio можно создавать типы моделей данных с помощью шаблона LINQ to SQL Classes или шаблона модели данных сущности ADO.NET . В этих шаблонах используется реляционный конструктор объектов (конструктор объектов) для модели LINQ to SQL или конструктор моделей ADO.NET entity data model (конструктор сущностей) для модели Entity Framework.
Конструкторы
MetaModel() |
Создает новый экземпляр класса MetaModel. |
MetaModel(Boolean) |
Создает новый экземпляр класса MetaModel. |
Свойства
Default |
Возвращает первый экземпляр модели данных, созданной приложением. |
DynamicDataFolderVirtualPath |
Возвращает или задает виртуальный путь к папке DynamicData веб-узла. |
EntityTemplateFactory |
Получает или задает объект EntityTemplateFactory, связанный с моделью. |
FieldTemplateFactory |
Возвращает или задает пользовательский интерфейс IFieldTemplateFactory. |
FilterFactory |
Получает или задает объект FilterFactory, связанный с моделью. |
Tables |
Возвращает коллекцию всех таблиц, входящих в состав модели данных. |
VisibleTables |
Возвращает коллекцию видимых таблиц в модели данных. |
Методы
CreateTable(TableProvider) |
Создает объект MetaTable. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetActionPath(String, String, Object) |
Возвращает путь действия, связанного с определенной таблицей. |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetModel(Type) |
Возвращает экземпляр модели данных для заданного контекста. |
GetTable(String) |
Возвращает метаданные, связанные с заданной таблицей. |
GetTable(String, Type) |
Возвращает метаданные, описывающие заданную таблицу. |
GetTable(Type) |
Возвращает метаданные, описывающие заданную таблицу. |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
RegisterContext(DataModelProvider) |
Регистрирует экземпляр контекста данных, используя поставщик модели данных. |
RegisterContext(DataModelProvider, ContextConfiguration) |
Регистрирует экземпляр контекста данных, используя заданную конфигурацию контекста и разрешив использование поставщика модели данных. |
RegisterContext(Func<Object>) |
Регистрирует контекст данных, заданный фабрикой контекста. |
RegisterContext(Func<Object>, ContextConfiguration) |
Регистрирует экземпляр контекста данных, используя заданную конфигурацию контекста и разрешив пользовательский конструктор. |
RegisterContext(Type) |
Регистрирует экземпляр контекста данных. |
RegisterContext(Type, ContextConfiguration) |
Регистрирует экземпляр контекста данных, используя заданную конфигурацию контекста. |
ResetRegistrationException() |
Сбрасывает предыдущую ошибку регистрации контекста, которая могла произойти. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
TryGetTable(String, MetaTable) |
Пытается получить метаданные, связанные с заданной таблицей. |
TryGetTable(Type, MetaTable) |
Пытается получить метаданные, связанные с заданной таблицей. |