如何使用Petapoco强制表列类型
本文关键字:类型 何使用 Petapoco | 更新日期: 2023-09-27 18:24:45
我希望强制使用datetime-mysql列类型,因为petapoco正在创建一个时间戳列。
[TableName("test"), PrimaryKey("id")]
public class Test
{
[Column("id")]
public long id { get; set; }
[Column("datetime")]
public DateTime datetime { get; set; }
}
列装饰器有第二个参数"Named Parameters"。我该如何使用它?
您可以将列标记为ResultColumn
,这样在选择时检索该列,但不包括在UPDATE
和INSERT
中
[ResultColumn("datetime")]
public DateTime datetime { get; set; }
或者只是
[ResultColumn]
public DateTime datetime { get; set; }
(如果属性名称与字段名称匹配,则无需键入名称)
为了强制正确的列类型,我建议使用脚本初始化数据库中的表,并让PetaPoco执行CRUD操作。这在PetaPoco中使用的测试中很明显,其中脚本用于初始化,如下所示:
SQL Server
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;
列装饰器用于更改属性映射到的列名,方法是将其指定为[column]属性的参数。因此,如果您有一个名为id的属性,但表中的列名名为article_id,则可以使用以下方法进行映射:
[Column("article_id")]
public long id { get; set; }
在您的代码中,您将在保存和获取数据时使用属性名称,PetaPoco会将属性映射到正确的列。
因此,在您的问题中,不需要属性,因为属性和列名是相同的。