次の方法で共有


MetaModel クラス

定義

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

この例をコンパイルするには、次のものが必要です。

この機能のランタイム コード例を参照してください: 実行

注釈

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)

指定されたテーブルに関連付けられたメタデータの取得を試みます。

適用対象

こちらもご覧ください