MetaModel クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ASP.NET Dynamic Data で使用する 1 つまたは複数のデータベースを表します。
public ref class MetaModel
public class MetaModel
type MetaModel = class
Public Class MetaModel
- 継承
-
MetaModel
例
次の例は、ASP.NET Web サイトで自動スキャフォールディングを使用するために type を使用して次のタスクを実行する方法 MetaModel を示しています。
既定のデータ コンテキストのデータ モデルを取得します。
指定したデータ コンテキストのデータ モデルを取得します。
指定したテーブルのルーティング パスを評価します (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
動的データ Web サイト。 詳細については、「 チュートリアル: スキャフォールディングを使用した新しい動的データ Web サイトの作成」を参照してください。
この機能のランタイム コード例を参照してください: 実行。
注釈
型 MetaModel を使用すると、動的データ Web アプリケーション用に 1 つまたは複数のデータ コンテキストを登録できます。
データ コンテキストは、データベース接続を表す オブジェクトです。 データ コンテキストは、その接続を介して使用できるデータベースを表す 1 つのデータ モデルにアクセスできます。 データ モデルは、データベースのデータ エンティティを CLR 型として表すオブジェクトです。 動的データでは、LINQ to SQL と ADO.NET Entity Framework に基づくデータ モデルがサポートされています。
Visual Studio では、 LINQ to SQL クラス テンプレートまたは ADO.NET Entity Data Model テンプレートを使用して、データ モデル型を生成できます。 これらのテンプレートでは、LINQ to SQL モデルにはオブジェクト リレーショナル デザイナー (O/R デザイナー) を使用し、Entity Framework モデルには ADO.NET エンティティ データ モデル デザイナー (エンティティ デザイナー) を使用します。
コンストラクター
MetaModel() |
MetaModel クラスの新しいインスタンスを生成します。 |
MetaModel(Boolean) |
MetaModel クラスの新しいインスタンスを生成します。 |
プロパティ
Default |
アプリケーションで作成されるデータ モデルの最初のインスタンスを取得します。 |
DynamicDataFolderVirtualPath |
Web サイトの 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) |
指定されたテーブルに関連付けられたメタデータの取得を試みます。 |
適用対象
こちらもご覧ください
.NET