MetaModel.Tables Property
.NET Framework (current version)
Gets a collection of all the tables that are part of the data model.
Assembly: System.Web.DynamicData (in System.Web.DynamicData.dll)
The collection contains all the tables in the data model, which includes the tables that are not visible (are not part of Dynamic Data scaffolding).
Run an online example of this feature.
The following example shows how to use the Tables and VisibleTables properties to perform the following tasks:
Get a collection of all the tables in a data model and show them in a GridView control.
Get a collection of the visible tables in a data model and show them in a GridView control.
The example consists of a page and its code-behind file.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TablesMenu.aspx.cs" Inherits="TablesMenu" %> <!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>Tables</h2> <form runat="server"> <h4>Visible Tables</h4> <asp:GridView ID="Menu1" runat="server" AutoGenerateColumns="false"> <Columns> <asp:TemplateField HeaderText="Table Name" SortExpression="TableName"> <ItemTemplate> <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#Eval("ListActionPath") %>'><%#Eval("DisplayName") %></asp:HyperLink> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <h4>Tables in the Data Model</h4> <asp:GridView ID="Menu2" runat="server" AutoGenerateColumns="false"> <Columns> <asp:TemplateField HeaderText="Table Name" SortExpression="TableName"> <ItemTemplate> <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#Eval("ListActionPath") %>'><%#Eval("DisplayName") %></asp:HyperLink> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </form> </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 TablesMenu : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { GetVisibleTables(); GetTables(); } // Gets all the tables in the data model. protected void GetTables() { System.Collections.IList tables = MetaModel.Default.Tables; if (tables.Count == 0) { throw new InvalidOperationException( "There are no tables in the data model."); } Menu2.DataSource = tables; Menu2.DataBind(); } // Gets only the visible tables in the data model. protected void GetVisibleTables() { System.Collections.IList visibleTables = MetaModel.Default.VisibleTables; if (visibleTables.Count == 0) { throw new InvalidOperationException( "There are no accessible tables. Make sure that at least one data model is registered in Global.asax and scaffolding is enabled or implement custom pages."); } Menu1.DataSource = visibleTables; Menu1.DataBind(); } }
.NET Framework
Available since 3.5
Available since 3.5
Show: