以下是模擬情境: MyDatabase.db 是一個Sqlite的資料庫,
第一張表如下:
Table_Index 資料表 : 目的是存放定義名稱 TableName 以及自然產生的Guid資料表名稱
而當產生NewToeic_A這張資料表時,就會在資料庫中生產以Guid命名的資料表
那如何在Sqlite的Orm 中撈取該資料表的資料呢?
//讀取資料庫位置
string dbPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "Alphabet.db");
//連線
var db = new SQLiteConnection(dbPath);
//使用Query 下達 Tablemapping定義 然後使用Sqlcommand 取得資料
//Guid_refect 就是我們要撈的表 Table_Row 是類別是我們定義的資料格式
var Getrowsdata = db.Query(new TableMapping(typeof(Table_Row)), string.Format("Select * from {0}", Guid_refect));
※補充說明,上面的Table_Row是類別定義如下
public class Table_Row
{
/// <summary>
/// 英文
/// </summary>
[MaxLength(300)]
public string English { get; set; }
/// <summary>
/// 中文意思
/// </summary>
[MaxLength(300)]
public string Chinese { get; set; }
}
這樣就可以動態抓table的資料了,以此架構的基準下,可以延伸出用匿名型別定義類別抓資料,變成code first 型式控制資料庫,輕輕鬆鬆完成中小型架構的專案程式。