我有一个定义数据库表的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类中的默认值设置为当前日期/时间?
谢谢!
答案 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有所作为。