.net 使用PetaPoco insert时如何处理数据库中的默认值?
我正在转换一个使用SQL Server的遗留应用程序,我想将petapoco用于我的数据访问层 表定义包含许多具有默认值的列 我希望我的DAL在插入新记录时处理默认值 不幸的是,使用.net 使用PetaPoco insert时如何处理数据库中的默认值?,.net,sql-server,default,petapoco,.net,Sql Server,Default,Petapoco,我正在转换一个使用SQL Server的遗留应用程序,我想将petapoco用于我的数据访问层 表定义包含许多具有默认值的列 我希望我的DAL在插入新记录时处理默认值 不幸的是,使用ResultColumn属性不是一个解决方案,因为当我使用UPDATE和INSERT时,该列被丢弃。默认值不能完全用作只读计算字段 有办法处理这个问题吗?目前没有办法,因为如果该值设置为null,那么它将插入/更新该值为DBNull 可能必须对代码进行更改才能有一个新属性,例如[OmitColumnIfDefault
ResultColumn
属性不是一个解决方案,因为当我使用UPDATE和INSERT时,该列被丢弃。默认值不能完全用作只读计算字段
有办法处理这个问题吗?目前没有办法,因为如果该值设置为null,那么它将插入/更新该值为DBNull
可能必须对代码进行更改才能有一个新属性,例如
[OmitColumnIfDefaultValue]
如果该列的值等于默认CLR值,那么我们可以从insert语句中省略该列。理解。关于,必须定义一些明确的规则,以使petapoco在插入期间忽略标记的填充:1)必须修饰相应的属性,2)插入之前必须在对象中将值设置为null。当您说null时,如果它是一个int,会发生什么?你应该使用一个可为null的int,或者如果该值等于c#…中的默认值,例如。0表示整数?当然,类型必须可以为空。考虑到默认值是在插入非空字段时避免空值的一个选项,我认为这很适合。