使用PetaPoco设置默认日期时间值

时间:2014-03-17 15:06:26

标签: datetime default petapoco

我有一个定义数据库表的PetaPoco类。它看起来像这样:

namespace MyProject.Pocos
{
    [TableName("AdminNotification")]
    [PrimaryKey("id", autoIncrement = true)]
    [ExplicitColumns]
    public class AdminNotification
    {
        [Column("id")]
        [PrimaryKeyColumn(AutoIncrement = true)]
        public int id { get; set; }

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

        [Column("adminNotificationTypeId")]
        public int adminNotificationTypeId { get; set; }
    }
}

除了一件事以外,它的效果很好。在数据库表本身(在SQL Server Express中),有一个默认值设置为' dateTime' - 默认为(getdate())。但是,在我的代码中使用PetaPoco类插入记录时,dateTime的值始终为NULL。

如何将PetaPoco类中的默认值设置为当前日期/时间?

谢谢!

1 个答案:

答案 0 :(得分:0)

一种方法是添加构造函数并在其中设置默认值:

    [TableName("AdminNotification")]
    [PrimaryKey("id", autoIncrement = true)]
    [ExplicitColumns]
    public class AdminNotification
    {
        [Column("id")]
        [PrimaryKeyColumn(AutoIncrement = true)]
        public int id { get; set; }

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

        [Column("adminNotificationTypeId")]
        public int adminNotificationTypeId { get; set; }

        public AdminNotification(){
          dateTime = DateTime.Now;
        }

    }

根据您创建和插入对象的方式,该值将显示创建AdminNotification的时间,而不是实际写入数据库的时间,但大部分时间差异可以忽略不计并赢得& #39; t有所作为。