前文已介紹反射動態取得型別資訊、自訂 Attribute 定義映射規則。現在將兩者結合:在執行期透過反射掃描實體類別屬性上的 Attribute,動態建構 O/R Mapping 規則,進而產生 SQL 指令。
假設 Person 類別的 Name、Age、Sex 屬性均標註 [DataFieldAttribute]:
static void Main() {
Person person = new Person { Name = "snoopy", Age = 5, Sex = "male" };
PropertyInfo[] infos = person.GetType().GetProperties();
foreach (PropertyInfo info in infos) {
object[] attrs = info.GetCustomAttributes(typeof(DataFieldAttribute), false);
if (attrs != null && attrs.Length > 0) {
var attr = (DataFieldAttribute)attrs[0];
Console.WriteLine($"{info.Name} -> 資料庫欄位:{attr.FieldName}");
}
}
}

輸出顯示屬性名稱與對應資料庫欄位名稱的對應關係,證明動態映射規則提取可行。
本章示範反射+Attribute 實現動態映射規則發現。但要打造完整 ORM,尚待解決:
這些議題將在後續章節逐一攻克。