强类型实体的问题

在项目中使用了强类型实体:

public class Model
{
  
private string attr1;
  
private DateTime attr2;
  
//

  
public string Attr1
  
{
    
get return attr1; }
    
set { attr1 = value; }
  }


  
public DateTime Attr2
  
{
    
get return attr2; }
    
set { attr2 = value; }
  }

  
//
}
出现了时间的苦恼:
如果数据库中的值为null, 读到实体里面去(如: Attr2),而Attr不能不能接受null值, 用Convert.ToDateTime转换,会变成时间默认值:"01/01/01".
程序上不会出错,不过如果要把这个时间保存到数据库(SqlServer)又出错了,SqlServer的时间不能在1879年(年份忘记了)之前.

后来想到了用一个固定年份去代替可以为空的时间字段:1990/01/01.这样读取的时候不会出错,保存的时候也不会出错了.不过出现了另外一个问题,在页面上,有些时间是可以不用填写的,可是缺出现了1990/01/01, 显然很别扭.

没有办法,只有在显示的时候统一处理,如果时间为1990/01/01,在界面上就显示空值.不知道这样做是不是合适.感觉工作量比较大,在所有页面上都要显示都要去控制.工作量比较大.
posted @ 2005-12-15 09:44  See Me Fly  阅读(423)  评论(1)    收藏  举报