黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

DataRabbit 輕量的數據訪問框架(09) -- IDa

系統 2799 0
(完全限定類名: DataRabbit.Schema.IDataSchemaAccesser

在前面介紹的很多訪問器的實現中,都不需要使用者提供任何關于數據庫表結構的信息(比如,主鍵、主外鍵關系等),這是因為它們都借助于IDataSchemaAccesser來獲取目標數據表的大綱信息,本文就來介紹如何使用DataRabbit框架中的IDataSchemaAccesser來訪問和操作數據表的大綱。

我們可以從DataRabbit的入口點IDataAccesser中獲取IDataSchemaAccesser引用:
IDataSchemaAccesser dataSchemaAccesser = dataAccesser.GetDataSchemaAccesser(null) ;
注意,與獲取前面介紹的各種訪問器一樣,IDataSchemaAccesser也是通過一個Get方法得到。

IDataSchemaAccesser 主要提供兩個功能,一是獲取指定表的大綱信息,二是依據大綱信息創建一個新的數據表。下面是IDataSchemaAccesser的完整定義:
public interface IDataSchemaAccesser : ITransactionAccesser
{
/// <summary>
/// ClearCache清空緩存的Schema
/// </summary>
void ClearCache();

/// <summary>
/// GetDataSchema獲取目標表table的數據大綱
/// </summary>
DataSchema GetDataSchema( string table);

/// <summary>
/// CreateTable在數據庫中創建大綱與schema一致的表
/// </summary>
void CreateTable( string table, DataSchema schema, bool createFKeys);
}

通過接口定義,我們看到,它也繼承 ITransactionAccesser 接口,這表明,IDataSchemaAccesser可以在非事務環境或事務環境中工作。
DataRabbit使用 DataSchema 來封裝數據表的大綱信息,它由多個 ColumnSchema 和N個 ForeignKey 構成,如下所示:
DataRabbit 輕量的數據訪問框架(09) -- IDataSchemaAccesser

ColumnSchema 封裝了一個數據列的大綱信息,包括:列名、列的類型、是否為主鍵、是否為自增列、是否允許為空、備注、最大長度等。
ForeignKey 封裝了當前數據表的某個外鍵信息,包括:外鍵列名稱、主表的名稱、對應的主表主鍵名稱。
另外, DataSchema 還提供了一個名為PrimaryKey的屬性,用于標志當前表的主鍵--可以表示單主鍵,也可以表示聯合主鍵。
DataRabbit 輕量的數據訪問框架(09) -- IDataSchemaAccesser

最后,我們給出一個例子,該例子演示如何在Oracle中創建一個Student表,該表的結構與SqlServer中的Student表結構一樣。

IDataAccesser dataAccesserToSqlServer = ... ; // 通過DataAccesserFactory創建IDataAccesser
IDataAccesser dataAccesserToOracle = ... ; // 通過DataAccesserFactory創建IDataAccesser

DataSchema studentSchema
= dataAccesserToSqlServer.GetDataSchemaAccesser(null). GetDataSchema ( " Student " );
dataAccesserToOracle.GetDataSchemaAccesser(null). CreateTable (
" Student " ,studentSchema, false );

轉到: DataRabbit 輕量的數據訪問框架 -- 序





DataRabbit 輕量的數據訪問框架(09) -- IDataSchemaAccesser


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論