語言

MetaModel.GetTable 方法

定義

回傳描述資料模型資料表的元資料。

多載

名稱 Description
GetTable(String, Type)

回傳描述指定資料表的元資料。

GetTable(Type)

回傳描述指定資料表的元資料。

GetTable(String)

回傳與指定資料表相關的元資料。

範例

以下範例說明如何利用 GetTable 超載方法執行以下任務:

  • 取得 MetaTable 指定資料表的物件。
  • 存取物件 MetaTable 所包含的元資料資訊。

範例包含一個頁面及其背後的程式碼檔案。

<%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="GetTable.aspx.cs" 
Inherits="DocGetTable" %>

<!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></title>
</head>
<body>
    <h2>GetTable Methods</h2>

    <form runat="server">
  
     <asp:GridView ID="GridDataSource1" runat="server"
        AutoGenerateColumns="false"
        DataSourceID="LinqDataSource1"
        AllowPaging="true">
        <Columns>
          <asp:DynamicField DataField="FirstName" />
          <asp:DynamicField DataField="LastName" />
          <asp:TemplateField HeaderText="Addresses">
            <ItemTemplate>
              <%# GetAdresses(2)%>
            </ItemTemplate>
          </asp:TemplateField>
        </Columns>
      </asp:GridView>
        
    </form>
    
     <asp:LinqDataSource ID="LinqDataSource1" runat="server" 
        TableName="Customers"
        ContextTypeName="AdventureWorksLTDataContext" >
      </asp:LinqDataSource>
</body>
<%@ Page Language="VB" AutoEventWireup="false" 
CodeFile="GetTable.aspx.vb" 
Inherits="GetTable" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
  <title></title>
</head>
<body>
    <h2>GetTable Methods</h2>

    <form id="Form1" runat="server">
  
     <asp:GridView ID="GridDataSource1" runat="server"
        AutoGenerateColumns="false"
        DataSourceID="LinqDataSource1"
        AllowPaging="true">
        <Columns>
          <asp:DynamicField DataField="FirstName" />
          <asp:DynamicField DataField="LastName" />
          <asp:TemplateField HeaderText="Addresses">
            <ItemTemplate>
              <%# GetAdresses(2)%>
            </ItemTemplate>
          </asp:TemplateField>
        </Columns>
      </asp:GridView>
        
    </form>
    
     <asp:LinqDataSource ID="LinqDataSource1" runat="server" 
        TableName="Customers"
        ContextTypeName="AdventureWorksLTDataContext" >
      </asp:LinqDataSource>
</body>
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;
using System.Text;

public partial class DocGetTable : System.Web.UI.Page
{
     protected void Page_Load(object sender, EventArgs e) 
     {
     }

    // Use GetTable methods.
    public string GetAdresses(int index)
    {
        // Get the default data model.
        MetaModel model = MetaModel.Default;
   
        MetaTable mTable;

        switch (index)
        {
            case 0:
                // Get the metatable for the table with the
                // specified entity type.
                mTable = model.GetTable(typeof(CustomerAddress));
                break;
            case 1:
                // Get the metatable for the table with the 
                // specified table name.
                mTable = model.GetTable("CustomerAddresses");
                break;
            case 2:
                // Get the metatable for the table with the 
                // specified table name and the specified data
                // context.
                mTable = model.GetTable("CustomerAddresses", typeof(AdventureWorksLTDataContext));
                break;
            default:
                mTable = model.GetTable(typeof(CustomerAddress));
                break;
        }

        // The following code dislays the actual value 
        // (adress) associated with a customer and link
        // to the related Addresses table.
        MetaForeignKeyColumn fkColumn = 
            (MetaForeignKeyColumn)mTable.GetColumn("Address");

        Customer row = (Customer)GetDataItem();

        StringBuilder addressList = new StringBuilder();

        foreach (CustomerAddress childRow in row.CustomerAddresses)
        {
            addressList.Append(childRow.AddressType);
            addressList.Append(":<br/>");
            addressList.Append("<a href='");
            addressList.Append(fkColumn.GetForeignKeyDetailsPath(childRow.Address));
            addressList.Append("'>");
            addressList.Append(childRow.Address.AddressLine1);
            addressList.Append("</a><br/><br/>");
        }

        return addressList.ToString();
    }
}
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
Imports System.Text

Partial Public Class DocGetTable
    Inherits System.Web.UI.Page
     Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

     End Sub

    ' Use GetTable methods.
    Public Function GetAdresses(ByVal index As Integer) As String
        ' Get the default data model.
        Dim model As MetaModel = MetaModel.Default

        Dim mTable As MetaTable

        Select Case index
            Case 0
                ' Get the metatable for the table with the
                ' specified entity type.
                mTable = model.GetTable(GetType(CustomerAddress))
            Case 1
                ' Get the metatable for the table with the 
                ' specified table name.
                mTable = model.GetTable("CustomerAddresses")
            Case 2
                ' Get the metatable for the table with the 
                ' specified table name and the specified data
                ' context.
                mTable = model.GetTable("CustomerAddresses", GetType(AdventureWorksLTDataContext))
            Case Else
                mTable = model.GetTable(GetType(CustomerAddress))
        End Select

        ' The following code dislays the actual value 
        ' (adress) associated with a customer and link
        ' to the related Addresses table.
        Dim fkColumn As MetaForeignKeyColumn = CType(mTable.GetColumn("Address"), MetaForeignKeyColumn)

        Dim row As Customer = CType(GetDataItem(), Customer)


        Dim addressList As New StringBuilder()

        For Each childRow As CustomerAddress In row.CustomerAddresses
            addressList.Append(childRow.AddressType)
            addressList.Append(":<br/>")
            addressList.Append("<a href='")
            addressList.Append(fkColumn.GetForeignKeyDetailsPath(childRow.Address))
            addressList.Append("'>")
            addressList.Append(childRow.Address.AddressLine1)
            addressList.Append("</a><br/><br/>")
        Next childRow

        Return addressList.ToString()

    End Function

End Class

備註

被超載方法回傳的 MetaTable 物件包含與指定資料表相關的元資料資訊。

GetTable(String, Type)

回傳描述指定資料表的元資料。

public:
 System::Web::DynamicData::MetaTable ^ GetTable(System::String ^ tableName, Type ^ contextType);
public System.Web.DynamicData.MetaTable GetTable(string tableName, Type contextType);
member this.GetTable : string * Type -> System.Web.DynamicData.MetaTable
Public Function GetTable (tableName As String, contextType As Type) As MetaTable

參數

tableName
String

數據表的名稱。

contextType
Type

資料上下文用來搜尋資料表。

傳回

描述指定資料表的元資料。

例外狀況

tablename 或 contextType 為 null。

上下文未被註冊,或資料表不存在於資料上下文中。

範例

以下範例說明如何使用此 GetTable(String, Type) 方法取得指定資料表的元資料。 完整範例請參見 GetTable。

// Get the metatable for the table with the 
// specified table name and the specified data
// context.
mTable = model.GetTable("CustomerAddresses", typeof(AdventureWorksLTDataContext));
' Get the metatable for the table with the 
' specified table name and the specified data
' context.
mTable = model.GetTable("CustomerAddresses", GetType(AdventureWorksLTDataContext))

另請參閱

適用於

GetTable(Type)

回傳描述指定資料表的元資料。

public:
 System::Web::DynamicData::MetaTable ^ GetTable(Type ^ entityType);
public System.Web.DynamicData.MetaTable GetTable(Type entityType);
member this.GetTable : Type -> System.Web.DynamicData.MetaTable
Public Function GetTable (entityType As Type) As MetaTable

參數

entityType
Type

用來識別資料模型中資料表的型別。

傳回

描述指定資料表的元資料。

例外狀況

該類型未在資料模型中被發現。

範例

以下範例說明如何使用此 GetTable(Type) 方法取得指定資料表的元資料。 完整範例請參見 GetTable。

// Get the metatable for the table with the
// specified entity type.
mTable = model.GetTable(typeof(CustomerAddress));
' Get the metatable for the table with the
' specified entity type.
mTable = model.GetTable(GetType(CustomerAddress))

另請參閱

適用於

GetTable(String)

回傳與指定資料表相關的元資料。

public:
 System::Web::DynamicData::MetaTable ^ GetTable(System::String ^ uniqueTableName);
public System.Web.DynamicData.MetaTable GetTable(string uniqueTableName);
member this.GetTable : string -> System.Web.DynamicData.MetaTable
Public Function GetTable (uniqueTableName As String) As MetaTable

參數

uniqueTableName
String

在資料模型中識別該資料表的名稱。

傳回

描述指定資料表的元資料。

例外狀況

該名稱未在資料模型中出現。

範例

以下範例說明如何使用此 GetTable(String) 方法取得指定資料表的元資料。 完整範例請參見 GetTable。

// Get the metatable for the table with the 
// specified table name.
mTable = model.GetTable("CustomerAddresses");
' Get the metatable for the table with the 
' specified table name.
mTable = model.GetTable("CustomerAddresses")

備註

名稱唯一識別資料模型中的資料表,並用來產生相關的路由網址。

另請參閱

適用於