В PostgreSQL (9,5), у меня есть следующие определения таблицы:Вставка новой записи в PostgreSQL со значениями по умолчанию из PetaPoco (и Npgsql)
CREATE TABLE icd9
(
recid serial NOT NULL,
code text,
cdesc text NOT NULL,
"timestamp" timestamp without time zone DEFAULT now(),
CONSTRAINT pk_icd9_recid PRIMARY KEY (recid)
)
Используя PetaPoco, у меня есть следующее заявление:
icd9 newicd9 = db.SingleOrDefault<icd9>("select * from icd9 where lower(cdesc) = lower(@0)", newdx.cdesc);
if (newicd9 == null)
{
newicd9 = new icd9 { cdesc = newdx.cdesc.ToLower(), code = newdx.code};
db.Insert(newicd9);
}
Выполнение ввода (newicd9) с результатами PetaPoco/Npgsql приводит к no Значение, присвоенное «временной отметке» новой записи. Как исправить это так, что используется значение PostgreSQL DEFAULT?
(Я могу присвоить отметке времени значение при создании экземпляра newicd9, но я бы хотел, чтобы PostgreSQL назначил его методом DEFAULT now()).
Любая помощь очень ценится.
Edit: Класс ICD9 определяется шаблоном PetaPoco Т4 как:
[TableName("nova.icd9")]
[PrimaryKey("recid")]
[ExplicitColumns]
public partial class icd9 : chaosDB.Record<icd9>
{
[Column] public int recid { get; set; }
[Column] public string code { get; set; }
[Column] public string cdesc { get; set; }
[Column] public DateTime? timestamp { get; set; }
}
Как вы определяете класс icd9? – harmic
@harmic Класс icd9 определяется шаблоном PetaPoco T4. См. Дополнительную информацию. Благодарю. –