前些日子因为用的代码生成器,把数据库表生成实体类之后,好多值是用?也就是允许为空,但是我们在显示判断时是不许为空的,然后在给字段在读取时加默认值,这个时候可能会有朋友说:在实体类里改啊。我开始也是这么想的,后来就发现,我们一共600+的表,而且我们有时候取数据,是用DataSet存的。
然后开始写了个方法,直接循环把DataSet的值全部判断是否为空,实体就用反射来一个个判断数学值是否为空,我开始用的是三元表达式,然后,突然一基友告诉我,用coalesce啊。然后我去查询了一下coalesce到底是个什么东西。
首先看看联机丛书的简要定义:
返回其参数中第一个非空表达式
语法:
COALESCE ( expression [ ,...n ] )
如果全部参数都为null,那么就返回null,并且在C#与数据库中都可以使用。