2016-09-14 53 views

回答

3

關於創建的表及其列和索引的元數據存儲在元數據表中。數據庫類公開暴露相應的元數據表。

表格或類型由Starcounter.Metadata.RawViewStarcounter.Metadata.ClrClass描述,並且都延伸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); 
} 

財產TableUpdatabletrue爲用戶定義的表和用於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說明。

目前它是數據庫類和表之間的一對一匹配。但是,這個和元數據模式將來可能會發生變化。