Share via


MetaModel Sınıf

Tanım

ASP.NET Dinamik Veri tarafından kullanılan bir veya birden çok veritabanını temsil eder.

public ref class MetaModel
public class MetaModel
type MetaModel = class
Public Class MetaModel
Devralma
MetaModel

Örnekler

Aşağıdaki örnekte, bir ASP.NET Web sitesinde otomatik iskele kullanmak üzere aşağıdaki görevleri gerçekleştirmek için türün nasıl MetaModel kullanılacağı gösterilmektedir:

  • Varsayılan veri bağlamı için veri modelini alın.

  • Belirtilen veri bağlamı için veri modelini alma.

  • Belirtilen tablo için yönlendirme yolunu değerlendirin (URL'yi belirleyin).

Örnek bir sayfadan ve arka planda kod dosyasından oluşur.

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

Örneği derlemek için aşağıdakiler gerekir:

Bu özelliğin çalışma zamanı kodu örneğine bakın: Çalıştır.

Açıklamalar

Türü, MetaModel bir Dinamik Veri Web uygulaması için bir veya birden çok veri bağlamı kaydetmenizi sağlar.

Veri bağlamı, veritabanı bağlantısını temsil eden bir nesnedir. Veri bağlamı, bu bağlantı aracılığıyla kullanılabilen bir veritabanını temsil eden bir veri modeline erişebilir. Veri modeli, CLR türleri olarak veritabanının veri varlıklarını temsil eden bir nesnedir. Dinamik Veriler, LINQ to SQL ve ADO.NET Entity Framework'e dayalı veri modellerini destekler.

Visual Studio'da LINQ to SQL Sınıfları şablonunu veya ADO.NET Varlık Veri Modeli şablonunu kullanarak veri modeli türleri oluşturabilirsiniz. Bu şablonlar, LINQ to SQL modeli için Nesne İlişkisel Tasarımcısı (O/R Tasarımcısı) veya Entity Framework modeli için ADO.NET Varlık Veri Modeli Tasarımcısı'nı (Varlık Tasarımcısı) kullanır.

Oluşturucular

MetaModel()

MetaModel sınıfının yeni bir örneğini başlatır.

MetaModel(Boolean)

MetaModel sınıfının yeni bir örneğini başlatır.

Özellikler

Default

Uygulama tarafından oluşturulan bir veri modelinin ilk örneğini alır.

DynamicDataFolderVirtualPath

Web sitesindeki DynamicData klasörünün sanal yolunu alır veya ayarlar.

EntityTemplateFactory

Modelle ilişkili nesneyi alır veya ayarlar EntityTemplateFactory .

FieldTemplateFactory

Özel IFieldTemplateFactory bir arabirim alır veya ayarlar.

FilterFactory

Modelle ilişkili nesneyi alır veya ayarlar FilterFactory .

Tables

Veri modelinin parçası olan tüm tabloların koleksiyonunu alır.

VisibleTables

Veri modelindeki görünür tabloların koleksiyonunu alır.

Yöntemler

CreateTable(TableProvider)

Bir MetaTable nesnenin örneğini oluşturur.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetActionPath(String, String, Object)

Belirli bir tabloyla ilişkili eylem yolunu döndürür.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetModel(Type)

Belirtilen bağlam için veri modeli örneğini döndürür.

GetTable(String)

Belirtilen tabloyla ilişkili meta verileri döndürür.

GetTable(String, Type)

Belirtilen tabloyu açıklayan meta verileri döndürür.

GetTable(Type)

Belirtilen tabloyu açıklayan meta verileri döndürür.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
RegisterContext(DataModelProvider)

Veri modeli sağlayıcısı kullanarak veri bağlamı örneğini kaydeder.

RegisterContext(DataModelProvider, ContextConfiguration)

Belirtilen bağlam yapılandırmasını kullanarak ve bir veri modeli sağlayıcısını etkinleştirerek bir veri bağlamı örneğini kaydeder.

RegisterContext(Func<Object>)

Bağlam fabrikası tarafından belirtilen veri bağlamını kaydeder.

RegisterContext(Func<Object>, ContextConfiguration)

Belirtilen bağlam yapılandırmasını kullanarak ve özel bir oluşturucuyu etkinleştirerek bir veri bağlamı örneğini kaydeder.

RegisterContext(Type)

Veri bağlamı örneğini kaydeder.

RegisterContext(Type, ContextConfiguration)

Belirtilen bağlam yapılandırmasını kullanarak veri bağlamı örneğini kaydeder.

ResetRegistrationException()

Daha önce oluşmuş olabilecek bağlam kaydı hatalarını sıfırlar.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
TryGetTable(String, MetaTable)

Belirtilen tabloyla ilişkili meta verileri almaya çalışır.

TryGetTable(Type, MetaTable)

Belirtilen tabloyla ilişkili meta verileri almaya çalışır.

Şunlara uygulanır

Ayrıca bkz.