1

Starcounter DB の SQL ステートメントまたはコード ビハインドを使用して、テーブル名と定義のリストを取得するにはどうすればよいですか?

4

1 に答える 1

3

作成されたテーブル、その列、およびインデックスに関するメタデータは、メタデータ テーブルに格納されます。データベース クラスは、対応するメタデータ テーブルに対してパブリックに公開されます。

テーブルまたは型はStarcounter.Metadata.RawViewandStarcounter.Metadata.ClrClassおよび both extendsによって記述されますStarctouner.Metadata.TableClrClassロードされた CLR クラスの説明のみが含まれ、RawView作成されたすべてのテーブルが説明されます。これらには、ユーザー定義のクラス/テーブルおよびメタデータ クラス/テーブルの説明が含まれています。

たとえば、読み込まれたすべてのユーザー定義クラスを列挙できます。

foreach(ClrClass c in Db.SQL<ClrClass>(
    "select c from Starcounter.Metadata.ClrClass c where Updatable = ?", true)) {
  Console.WriteLine(c.FullName);
}

のプロパティUpdatableTabletrueユーザー定義テーブルおよびfalseメタデータ/システム テーブル用です。

プロパティまたは列は、Starcounter.Metadata.Memberおよびその子によって記述されます。すべてのユーザー定義テーブルのすべての列を列挙する例は次のとおりです。

foreach(Member m in Db.SQL<Member>(
    "select m from Column m, RawView v where m.Table = v and v.Updatable = ?",
    true)) {
  Console.WriteLine(m.Name);
}

索引は および で表されStarcounter.Metadata.IndexますStarcounter.Metadata.IndexedColumn

現在、データベース クラスとテーブルは 1 対 1 で一致しています。ただし、これとメタデータ スキーマは将来変更される可能性があります。

于 2016-09-14T12:40:02.133 に答える