asp.NETDynamicSiteで独自のメタデータを構成するための情報を検索しています。
例えば。以下に示す構造のテーブルがMSSQLServerにあります。
CREATE TABLE [dbo].[someTable](
[id] [int] NOT NULL,
[pname] [nvarchar](20) NULL,
[FullName] [nvarchar](50) NULL,
[age] [int] NULL)
そして私は2つのMsSqlテーブル(私が作成した)、sysTablesとsysColumnsがあります。
sysTables:
ID sysTableName TableName TableDescription
1 | someTable |Persons|システム内のPersonsに関するすべてのデータ
sysColumns:
ID TableName sysColumnName ColumnName ColumnDesc ColumnType MUnit
1 | someTable | sometable_pname | 名前| ペルソナ名(例:ジョン)| nvarchar(20)| null
2 | someTable | sometable_Fullname | フルネーム| ペルソナ名(例:ジョンブラック)| nvarchar(50)| null
3 | someTable | sometable_age | 年齢| 人の年齢| int | ヌル
詳細/編集/挿入/リスト/リストの詳細ページで、メタデータsysColumnsおよびsysTableDataとして使用する必要があります。なぜなら、例えば。DetailsPage fullNameでは、フルネームとしては美しくありません。
someIdea、それは可能ですか?
ありがとう
更新::リストページでsysTables(メタデータテーブル)からのデータを表示するように変更しました<h2 class="DDSubHeader"><%= tableName%></h2>
。
public string tableName;
protected void Page_Init(object sender, EventArgs e)
{
table = DynamicDataRouteHandler.GetRequestMetaTable(Context);
//added by me
uqsikDataContext sd=new uqsikDataContext();
tableName = sd.sysTables.Where(n => n.sysTableName == table.DisplayName).FirstOrDefault().TableName;
//end
GridView1.SetMetaTable(table, table.GetColumnValuesFromRoute(Context));
GridDataSource.EntityTypeName = table.EntityType.AssemblyQualifiedName;
if (table.EntityType != table.RootEntityType)
{
GridQueryExtender.Expressions.Add(new OfTypeExpression(table.EntityType));
}
}
では、sysColumsはどうですか?sysColumnsテーブルからデータを取得するにはどうすればよいですか?