0
我已经定义使用小巧玲珑插入到用默认值的表
[CreatedOn] not null default(getdate())
,有一个字段不为空并且具有默认值的表的我在模型中使用了短小精悍的属性是可空DateTime
public DateTime? CreatedOn { get; set; }
如果我尝试插入,会引发异常以尝试在非空字段中插入空值。
cm.Insert<MyObject>(obj); //Throws because CreatedOn == null
我在找的是数据库设置的默认值,并且在读取对象时仍然能够看到该值。由于Dapper将值作为空值传递,因此数据库将引发错误。如果我忽略了财产,那么我就失去了阅读它的能力。我希望能够单方面忽略,或者让旗手知道会有一个默认值。如何做这项工作?
我正在寻找的是由数据库中设置默认,并仍然能够看到当我读对象时,这个值。由于Dapper将值作为空值传递,因此数据库将引发错误。如果我忽略了财产,那么我就失去了阅读它的能力。我希望能够单方面忽略,或者让旗手知道会有一个默认值。 – QueueHammer
Ahhh,您可以使用CreatedOn上的以下属性 - [Dapper.IgnoreUpdate,Dapper.IgnoreInsert]。我编辑了上面的例子来说明这个属性如何适应。这将防止DapperSimpleCrud在插入或更新时使用它们。 – Zabbu
什么名称空间是那些属性? Dapper.Contrib有一个名为Write的属性,它的值为false,但不妨碍写入。 – QueueHammer