与PetaPoco设置默认的日期时间值(Set default datetime value wit

2019-10-19 14:17发布

我有一个定义数据库表中的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)也为“日期时间”设置的默认值-它默认为(getdate()) 然而,当使用在我的代码PetaPoco类插入的记录,日期时间的值始终为NULL。

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

谢谢!

Answer 1:

一种方法是增加一个构造函数,并设置默认值有:

    [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,而不是实际上已经写入数据库的时间的时间,但大部分时间差可以忽略不计,不会使差异。



文章来源: Set default datetime value with PetaPoco