先設計類別,由類別產生 Schema 再建表,與 ORM 方向相反。最大優勢:類別為單一真實來源,修改類別 → 重產 Schema → 更新資料庫,消除雙重維護。
namespace Model
{
public class Phone
{
string _code;
public string Code { get { return _code; } set { _code = value; } }
PhoneType _type;
public PhoneType Type { get { return _type; } set { _type = value; } }
}
public enum PhoneType
{
[XmlEnum(Name = "未知")] Unknown,
[XmlEnum(Name = "移動")] Mobile,
[XmlEnum(Name = "固定")] Fixed,
}
[XmlRoot("Phones")]
public class Phones : List<Phone>
{
public void Add(string code, PhoneType type)
{
base.Add(new Phone() { Code = code, Type = type });
}
}
}
[XmlEnum(Name="...")]:控制 XML 序列化列舉文字[XmlRoot("Phones")]:指定根元素名稱List<Phone> 獲得集合行為並擴充便利方法xsd.exe /type:Model.Phones Model.dllXmlReflectionImporter + XmlSchemas