學習:NHibernate中DateTime,int,bool空值的處理方法

來源:互聯網
上載者:User

  我們知道,資料庫中DateTime子段允許為空白(null)。當我們在ASP.NET中映射為DateTime是就不允為空白了。該怎麼處理?基本有兩種辦法:
(1)修改.hbm.xml檔案中的類型,該"DateTime"為"String",該實體檔案中的屬性類型"DateTime"為"String"。
    處理的時候,該屬性值要麼為空白,要麼是具有正確日期格式的字串。
  該方法只適合DateTime類型,而對int,bool類型就不適應了。下面就看第二種方法。
(2)Nullables處理
    (1)添加引用:Nullables.dll與Nullables.NHibernate.dll
    (2)修改設定檔.hbm.xml對應的類型,如:
   <property name="InDate" column="inDate" type="DateTime"/>修改為:
   <property name="InDate" column="inDate" type="Nullables.NHibernate.NullableDateTimeType,Nullables.NHibernate"/>
    (3)修改實體類檔案,如:
    private DateTime _inDate;
      /// <summary>
      /// 添加日期
      /// </summary>
      public DateTime InDate
      {
           get { return _inDate; }
           set { _inDate = value;
     }   修改為:
     private Nullables.NullableDateTime _InDate;
      /// <summary>
      /// 添加日期
      /// </summary>
      [NHibernate.Mapping.Attributes.Property]
      public Nullables.NullableDateTime InDate
      {
           get { return _InDate; }
           set { _InDate = value; }
      }
     (4)給屬性InDate賦值:
        Item clsItem = new Item();
        clsItem.InDate = new NullableDateTime(System.DateTime.Now);
        如果要輸入空值,如:clsItem.InDate = nulll;

     (5)擷取屬性InDate的值:
        ItemCRUD clsCRUD = new ItemCRUD();  //對實體類的操作
        Item clsItem = clsCRUD.ItemDetails(id);  //擷取實體類
        this.txtInDate.Text = clsItem.InDate.ToString();
       
        通過第二種方法可以對資料庫中對應的整形、bool類型等賦空值。
        
        產生實體類的CodeSmith模版:/Files/zsy/NHibernate_Entity.rar
        產生.hbm.xml的CodeSmith模版:/Files/zsy/NHibernate_Mapping.rar

 

文章來源:http://zsy.cnblogs.com/archive/2006/01/06/312488.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.