2016-09-14 4 views

答えて

3

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

表またはタイプは、Starcounter.Metadata.RawViewおよびStarcounter.Metadata.ClrClassによって記述され、両方ともStarctouner.Metadata.Tableに拡張されます。 ClrClassには、ロードされたCLRクラスのみの説明が含まれ、RawViewには、作成されたすべてのテーブルが記述されます。ユーザー定義クラス/テーブルとメタデータクラス/テーブルの説明が含まれています。例えば、ロードされたすべてのユーザ定義のクラスが挙げられる

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

プロパティUpdatableTableのユーザ定義テーブルのtrueおよびメタデータ/システム・テーブルの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.IndexStarcounter.Metadata.IndexedColumnによって記載されています。

現在のところ、データベースクラスとテーブルの間には1対1のマッチングがあります。ただし、このメタデータスキーマは将来変更される可能性があります。

関連する問題