다음을 통해 공유


MetaModel 클래스

정의

ASP.NET Dynamic Data에서 사용하는 하나 또는 여러 데이터베이스를 나타냅니다.

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

예제를 컴파일하려면 다음이 필요합니다.

이 기능은 런타임에 코드 예제를 보려면: 실행합니다.

설명

MetaModel Dynamic Data 웹 애플리케이션 하나 또는 여러 데이터 컨텍스트를 등록할 수 있습니다.

데이터 컨텍스트는 데이터베이스 연결을 나타내는 개체입니다. 데이터 컨텍스트는 해당 연결을 통해 사용할 수 있는 데이터베이스를 나타내는 하나의 데이터 모델에 액세스할 수 있습니다. 데이터 모델은 데이터베이스의 데이터 엔터티를 CLR 형식으로 나타내는 개체입니다. 동적 데이터는 LINQ to SQL 및 ADO.NET Entity Framework에 기반한 데이터 모델을 지원합니다.

Visual Studio에서는 LINQ to SQL 클래스 템플릿 또는 ADO.NET 엔터티 데이터 모델 템플릿을 사용하여 데이터 모델 형식을 생성할 수 있습니다. 이러한 템플릿은 LINQ to SQL 모델에 개체 관계형 디자이너(O/R 디자이너) 또는 Entity Framework 모델에 ADO.NET 엔터티 데이터 모델 디자이너(엔터티 디자이너)를 사용합니다.

생성자

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)

지정된 테이블에 연결된 메타데이터를 가져오려고 합니다.

적용 대상

추가 정보