Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用PetaPoco insert时如何处理数据库中的默认值?_.net_Sql Server_Default_Petapoco - Fatal编程技术网

.net 使用PetaPoco insert时如何处理数据库中的默认值?

.net 使用PetaPoco insert时如何处理数据库中的默认值?,.net,sql-server,default,petapoco,.net,Sql Server,Default,Petapoco,我正在转换一个使用SQL Server的遗留应用程序,我想将petapoco用于我的数据访问层 表定义包含许多具有默认值的列 我希望我的DAL在插入新记录时处理默认值 不幸的是,使用ResultColumn属性不是一个解决方案,因为当我使用UPDATE和INSERT时,该列被丢弃。默认值不能完全用作只读计算字段 有办法处理这个问题吗?目前没有办法,因为如果该值设置为null,那么它将插入/更新该值为DBNull 可能必须对代码进行更改才能有一个新属性,例如[OmitColumnIfDefault

我正在转换一个使用SQL Server的遗留应用程序,我想将petapoco用于我的数据访问层

表定义包含许多具有默认值的列

我希望我的DAL在插入新记录时处理默认值

不幸的是,使用
ResultColumn
属性不是一个解决方案,因为当我使用UPDATE和INSERT时,该列被丢弃。默认值不能完全用作只读计算字段


有办法处理这个问题吗?

目前没有办法,因为如果该值设置为null,那么它将插入/更新该值为DBNull


可能必须对代码进行更改才能有一个新属性,例如
[OmitColumnIfDefaultValue]
如果该列的值等于默认CLR值,那么我们可以从insert语句中省略该列。

理解。关于,必须定义一些明确的规则,以使petapoco在插入期间忽略标记的填充:1)必须修饰相应的属性,2)插入之前必须在对象中将值设置为null。当您说null时,如果它是一个int,会发生什么?你应该使用一个可为null的int,或者如果该值等于c#…中的默认值,例如。0表示整数?当然,类型必须可以为空。考虑到默认值是在插入非空字段时避免空值的一个选项,我认为这很适合。