在我的数据库中给定以下table
(PostgreSQL)
CREATE TABLE produkt (
id SERIAL NOT NULL,
name VARCHAR(50),
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT timezone('utc'::text, now())
);
ALTER TABLE produkt ADD CONSTRAINT produkt_pkey PRIMARY KEY (id);
我想使用 NPoco 使用此 poco 访问数据
[TableName("produkt"), PrimaryKey("id", AutoIncrement = true)]
public class Product
{
[Column("id")]
public int Id { get; set; }
[Column("name")]
public string Name { get; set; }
[Column("created_at")]
public DateTime CreatedAt { get; set; }
}
现在,当我打电话
var product = new Product
{
Name = "My new Product"
};
Database.Insert(product); // or Database.Save<Product>(product);
created_at
列是-infinity
的,即使default
值已经声明。有什么办法可以解决这个问题吗?一种替代方法是在应用程序中设置 Date,但我宁愿使用 DB 中的 default
值实现此功能。
try makin CreatedAt nullable:
[Column("created_at")]
public Nullable<DateTime> CreatedAt { get; set; }
或在构造函数中设置其值,如下所示这里。