在PetaPoco中,Brad並沒有定義太多Attribute來修飾Models或Fields。這些為數不多的幾個Attribute如下:
- ColumnAttribute
- ExplicitColumnsAttribute
- IgnoreAttribute
- PrimaryKeyAttribute
- ResultColumnAttribute
- TableNameAttribute
ExplicitColumnsAttribute 和 ColumnAttribute
使用ExplicitColumnsAttribute修飾的類必須為每一個屬性必須使用ColumnAttribute來修飾。例如:
[ExplicitColumns] public class Album { [Column("AlbumId")] public int AlbumId { get; set; } [Column("Title")] public string Title { get; set; } public int ArtistId { get; set; } }
在這個實體中,ArtistId不會被映射,如果要被映射,需要添加Column修飾。
IgnoreAttribute
顧名思義,如果不需要某一列映射到數據庫中,可以將該列標記為Ignore,這一列就不會被映射了。
public class Album { public int AlbumId { get; set; } public string Title { get; set; } [Ignore] public int ArtistId { get; set; } }
PrimaryKeyAttribute
這個特性是用來標記實體的,它指明了實體的主鍵列名、是否自增,以及用於Oracle的sequence名稱。默認情況下,其autoIncrement為true,如果使用非自增列作為主鍵,需要設定一下,或者,干脆就不適用這個屬性進行修飾。
TableNameAttribute
這個特性用來標記實體所對應的數據表名稱。
ResultColumnAttribute
用來修飾屬性的,Brad對其的說明是,如果某一屬性只用於查詢,不用於插入和更新操作時,可以用這個特性進行修飾。
