2014-09-26 25 views
0

我希望強制一個datetime mysql列類型,因爲petapoco正在創建一個時間戳列。如何使用Petapoco強制表列類型?

[TableName("test"), PrimaryKey("id")] 
public class Test 
{ 
     [Column("id")] 
     public long id { get; set; } 

     [Column("datetime")] 
     public DateTime datetime { get; set; } 
} 

列裝飾器有第二個參數「命名參數」。我如何使用它?

回答

0

要強制使用正確的列類型,我會建議使用腳本來初始化數據庫中的表並讓PetaPoco執行CRUD操作。

SQL服務器

CREATE TABLE petapoco (
    id bigint IDENTITY(1,1) NOT NULL, 
    date_created datetime NOT NULL, 
    ... 
); 

MySQL的

CREATE TABLE petapoco (
    id bigint AUTO_INCREMENT NOT NULL, 
    date_created datetime NOT NULL, 
    ... 
) ENGINE=INNODB; 

柱裝飾用來change the column name to which a property is mapped by specifying it as an argument to the [column] attribute:其中的腳本用於初始化如下這是tests being used in PetaPoco明顯。因此,如果你有一個屬性名爲id,但在表中的列名被命名爲article_id,請使用以下做映射:

[Column("article_id")] 
public long id { get; set; } 

在你的代碼將使用屬性名稱,而儲蓄和取數據和PetaPoco將把該屬性映射到正確的列。

所以在你的問題中,將不需要屬性作爲屬性和列名是相同的。

1

可以標記列ResultColumn,列被選擇上檢索的方式,但不包括在UPDATEINSERT

[ResultColumn("datetime")] 
    public DateTime datetime { get; set; } 

或只是

[ResultColumn] 
    public DateTime datetime { get; set; } 

(你不」如果屬性名稱與字段名稱匹配,則需要輸入名稱)

相關問題