刚进入公司的一个小菜,工作9个月,刚适应公司的环境。
做了一个小项目,觉得有点收获,别的不说,起码快捷键记得挺熟了。
开发的时候没有划分架构,项目组长也没考虑这么多,做到最后他们的代码跟拉面差不多了。
我都懒得看。好歹我知道没事重构下,但是没有划分好的层,导致现在我连我自己的代码都不乐意看了,所以没事学习学习,看看大家用了这么久的三层架构。拿出经典的例子来:Petshop。
我看了一遍,有一个问题,希望得到帮助!
在SQLServerDAL 层,有基本的操作,例如GET操作。我要把数据库的一行提取出来,生成相应的Model对象,但是对于NULL值的话,如何创建这个对象呢?
如果遇到NULL立马改成DBNull.Value的话,值就是""不是NULL了,然后我在对这个对象进行Update的话,原来的NULL就成了""了。不要问我为什么要保留NULL,因为我们做的Schedule Server判断字符串为空时,都是根据Column为NULL判断了,没办法。
希望大家帮我下,感激不尽!
NULL就用NUL,既然不要改为DBNull.Value,不要改成""。
如果用的是ADO.NET,传递的是NULL,更新后数据库中的值也会是NULL。
一般这问题,可能是在建立实体(Model)时,对值类型要加?号,如:
publick int? ID 这样的话该值默认为null,而不是0。
推荐使用CYQ.Data 数据框架,能节省你70%以上代码量。
如果是DBNULL,就输出NULL,如果是NULL,就UPDATE DBNULL,这个没有什么冲突。