如何在使用PetaPoco插入时处理数据库中的DEFAULT值?

4
我正在转换一个使用SQL Server的传统应用程序,并希望在数据访问层中使用petapoco。
表定义包含许多带有默认值的列。我希望我的数据访问层在插入新记录时处理默认值。
不幸的是,使用ResultColumn属性并不是一个解决方案,因为当我使用UPDATE和INSERT时该列被丢弃。DEFAULT值并不像只读计算字段一样起作用。
是否有一种处理方法?
1个回答

7

目前没有方法,因为如果值设置为 null,则会将其插入/更新为 DBNull。

可能需要更改代码以添加新属性,例如 [OmitColumnIfDefaultValue],然后如果该列的值等于默认 CLR 值,则可以省略该列的插入语句。


明白了。关于https://dev59.com/SHVC5IYBdhLWcg3woStW,必须定义一些清晰的规则,使petapoco在插入期间忽略标记的填充:1)相应的属性必须被装饰,2)在插入之前,对象中的值必须设置为null。 - Larry
当你说null时,如果它是一个int,会发生什么...你应该使用可空的int吗?或者如果值等于C#中的默认值...例如,对于int来说是0? - Schotime
当然,类型必须是可空的。考虑到 DEFAULT 是在插入 NOT NULL 字段时避免 NULL 值的选项,我认为这可能很适合。 - Larry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接