MetaModel 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示 ASP.NET Dynamic Data 所使用的一個或多個資料庫。
public ref class MetaModel
public class MetaModel
type MetaModel = class
Public Class MetaModel
- 繼承
-
MetaModel
範例
下列範例示範如何使用 MetaModel type 來執行下列工作,以便在 ASP.NET 網站中使用自動 Scaffolding:
取得預設資料內容的資料模型。
取得指定資料內容的資料模型。
評估路由路徑 (判斷指定資料表的 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。
動態資料網站。 如需詳細資訊,請參閱逐步解說 :使用 Scaffolding 建立新的動態資料網站。
請參閱此功能的執行時間程式碼範例: 執行。
備註
此 MetaModel 類型可讓您為動態資料 Web 應用程式註冊一或多個資料內容。
資料內容是代表資料庫連接的物件。 資料內容可存取一個資料模型,代表可透過該連接取得的資料庫。 資料模型是物件,代表資料庫的資料實體做為 CLR 類型。 動態資料支援以 LINQ to SQL 和 ADO.NET Entity Framework 為基礎的資料模型。
在 Visual Studio 中,您可以使用LINQ to SQL 類別範本或ADO.NET 實體資料模型範本來產生資料模型類型。 這些範本會針對 LINQ to SQL 模型使用 物件關聯式設計工具 (O/R 設計工具) ,ADO.NET 或實體資料模型設計工具 (Entity Framework 模型的實體設計工具) 。
建構函式
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) |
使用指定的內容組態並啟用資料模型提供者 (Provider),註冊資料內容執行個體。 |
RegisterContext(Func<Object>) |
註冊內容 Factory 所指定的資料內容。 |
RegisterContext(Func<Object>, ContextConfiguration) |
使用指定的內容組態並啟用自訂建構函式,註冊資料內容執行個體。 |
RegisterContext(Type) |
註冊資料內容執行個體。 |
RegisterContext(Type, ContextConfiguration) |
使用指定的內容組態,註冊資料內容執行個體。 |
ResetRegistrationException() |
重設任何可能已發生的先前內容註冊錯誤。 |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |
TryGetTable(String, MetaTable) |
嘗試取得與指定之資料表相關聯的中繼資料。 |
TryGetTable(Type, MetaTable) |
嘗試取得與指定之資料表相關聯的中繼資料。 |
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應