`
maplye
  • 浏览: 114636 次
  • 来自: ...
社区版块
存档分类
最新评论

[转]NHibernate中DateTime,int,bool空值的处理方法

阅读更多
原文: http://zsy.cnblogs.com/archive/2006/03/14/312488.html

我们知道,数据库中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类型等赋空值。
分享到:
评论

相关推荐

    NHibernate 中文文档教程

    这份文档教程详细介绍了如何配置NHibernate,如何创建映射文件,以及如何使用Session和Transaction来处理数据库交互。同时,由于它还附带了原始的英文文档,读者可以对比学习,确保理解和翻译的准确性。 以下是...

    NHibernate中文文档

    不仅仅管理.NET类到数据库表的映射(包括.NET 数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和ADO.NET处理数据的时间。 NHibernate的目标主要是用于与数据持久...

    NHibernate中文API

    10. **多态性支持**:在继承体系中,NHibernate可以正确处理多态性,使得不同类型的对象可以共享相同的数据库表。 11. **事务管理**:NHibernate支持编程式和声明式事务管理,确保数据一致性。 12. **分页查询**:...

    NHibernate参考文档 2.0(中文)

    3. **实体(Entities)**:在NHibernate中,实体代表业务领域中的对象,它们被映射到数据库中的表。实体应遵循特定的规则,如拥有标识符(ID)属性。 4. **持久化(Persistence)**:NHibernate提供了CRUD(创建、...

    NHibernate 中文文档

    在轻量级模式下,应用程序直接管理ADO.NET连接和事务,而在全面解决方案中,NHibernate会处理这些底层细节,提供更高级别的抽象。这两种模式体现了NHibernate的灵活性,以适应不同开发场景的需求。 总之,...

    NHibernate2.0中文文档

    5. **事务处理**:学习如何在NHibernate中处理数据库事务,确保数据的一致性和完整性。 6. **查询**:探索HQL(Hibernate Query Language)和 Criteria API,它们是NHibernate提供的面向对象的查询方式,可以替代...

    Nhibernate使用教程中文文档

    Nhibernate提供了Session、Transaction、Querying等核心组件,帮助开发者高效地处理数据。 ### 二、安装与配置 1. **安装**: 通过NuGet包管理器安装Nhibernate和相关的依赖库。 2. **配置**: 配置文件(通常是`...

    NHibernate中的Session示例源代码

    例如,`Customer.cs`可能是表示客户信息的实体类,它包含了属性和方法,这些属性对应数据库表的字段,而方法则处理业务逻辑。 `hibernate.cfg.xml`是NHibernate的配置文件,它定义了数据库连接信息、映射文件的位置...

    Nhibernate 中文文档

    - **应用场景**:在NHibernate中,`SessionFactory`通常在整个应用程序生命周期内创建一次,然后在需要时通过它创建`Session`对象。 2. **Session (NHibernate.ISession)** - **定义**:`Session`是单线程、生命...

    NHibernate中文帮助手册API

    NHibernate 参考文档手册 chm,NHIBERNATE-符合.Net习惯的关系数据库持久化,手册目录摘要:  前言  1. 第一个NHibernate应用程序  1.1. 开始NHibernate之旅  1.2. 第一个持久化类  1.3. 映射cat  1.4. ...

    NHibernate-2.1.2.GA-bin NHibernate框架

    2. **自动数据持久化**:当对象的状态改变时,NHibernate 可以自动将这些变化持久化到数据库中,反之,当需要查询数据库时,它也能将数据转换为对象状态。 3. **查询语言**:NHibernate 支持 HQL(NHibernate Query...

    Nhibernate常见的三种配置方法

    2. **读取配置**:使用`NHibernate.Cfg.Configuration`类的`Configure`方法来加载配置文件中的`hibernate-configuration`节点。 3. **创建SessionFactory**:使用配置对象创建`SessionFactory`实例。 #### 二、...

    NHibernate中文参考文档

    在 NHibernate 的轻量级模式中,应用程序直接管理 ADO.NET 连接和事务,而在全面解决方案中,NHibernate 将处理所有底层细节,提供更高级别的抽象。这提供了灵活性,可以根据项目的具体需求选择适合的集成方式。 总...

    NHibernate 执行存储过程

    而在.NET开发中,尤其是使用ORM(对象关系映射)框架如NHibernate时,执行数据库存储过程是常见的需求。本文将深入探讨如何在NHibernate中调用和执行存储过程。 首先,理解NHibernate的基本工作原理是必要的。...

    NHibernate

    8. **事务处理**:NHibernate支持事务管理,可以使用Session的BeginTransaction、Commit和Rollback方法来控制事务的边界。 9. **缓存机制**:NHibernate内置了第一级缓存(Session级别)和第二级缓存...

    nhibernate

    nhibernate c#nhibernate c#nhibernate c#nhibernate c#nhibernate c#nhibernate c#nhibernate c#

    学习NHibernate的范例

    这个"学习NHibernate的范例"是一个实用的学习资源,旨在帮助开发者理解如何在实际项目中应用NHibernate。在这个例子中,我们将探讨一个基于NHibernate构建的三层用户管理系统,它涵盖了基本的CRUD(创建、读取、更新...

    nhibernate教程

    - 需要在项目中添加NHibernate的引用(NHibernate.dll)。 - 在桌面应用程序中配置`App.config`文件,在Web应用程序中配置`web.config`文件。 - 配置文件中需要指定数据库连接信息、使用的数据库方言等参数。 - ...

    .NET中强大的框架NHibernate

    .NET中的NHibernate是一个强大的对象关系映射(ORM)框架,它为.NET开发者提供了一种将数据库操作抽象化、简化的方法,使得开发人员可以使用面向对象的编程方式来处理数据库交互,而无需直接编写SQL语句。...

Global site tag (gtag.js) - Google Analytics