zoukankan      html  css  js  c++  java
  • NHibernate初学问题总结二


    其实,以下说的问题不是什么大事,只是自己在学习NHibernate时候遇到的问题,说出来让大家注意以下,都是一些细小的地方,但是这些地方不注意也不行。。。

    一、实体的xml 文件区分大小写:


    如实体类xml 文件中如果定义属性为UserID,那么在实体类的Cs文件中你也要定义属性UserID,大小写要一致,
    不一致就会报错!

     1<?xml version="1.0" encoding="utf-8" ?> 
     2<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
     3    <class name="GoodFoodHelper.dinner, GoodFoodHelper" table="users">
     4        <id name="DinnerId" type="Int32">
     5            <generator class="identity" />
     6        </id>
     7        <property name="UserID" type="Int32"/>
     8        <property name="PlaceID" type="Int16"/>
     9        <property name="Price" type="Single"/>
    10        <property name="OrderTime" type="DateTime"/>
    11        <property name="Status" type="Int16"/>
    12        <property name="PMID" type="Int32"/>
    13        <property name="DinnerDesc" type="String"/>
    14        
    15        
    16    </class>    
    17</hibernate-mapping>
    18


    1    public int UserID
    2        {
    3            get return m_UserId; }
    4            set { m_UserId = value; }
    5        }




    二、实体类中的数据类型要用C#中数据类型

    如 hbm.xml文件中

    <property name="GroupID" type="Int16"/>

    不能写成

    <property name="GroupID" type="SmallInt"/>


    三、最好把公共配置的东西写在web.config中,否则你在类文件修改配置文件时,还需在复制此文件到WEb
    工程的bin目录下面。

    我开始把下面东西放入一个叫hibernate.cfg.xml的文件中去,可是后来修改了配置不起作用,后来发现
    Web工程下面也有一份,把类库中修改好的配置文件覆盖过去就可以了!

    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-configuration xmlns="urn:nhibernate-configuration-2.0">
        
    <session-factory name="GoodFoodHelper">
            
    <!-- 属性 -->
            
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
            
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
            
    <property name="connection.connection_string">server=.;database=BaiheDinner;uid=sa;pwd=sa;</property>
            
    <property name="show_sql">false</property>
            
    <property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property>
            
    <property name="use_outer_join">true</property>
            
    <property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
            
    <!-- 映射文件 -->
            
    <mapping assembly="GoodFoodHelper" />
        
    </session-factory>
    </hibernate-configuration>



    四 、有个问题请教:

    我看了 DDL 的 NHibernateWebDemo 一例 ,里面是用3层架构写的

    业务层、实体层、和表示层 非常清晰、我想问如果我想把业务层和实体层合为一个可以吗?

    然后我把实体类中写所有表示层需要的方法

    例如 我把获得所有用户对象集合的方法,也写到力实体类 users中了,不知道这样写有什么缺点


     1public IList GetAllUsers(string strHQL)
     2        {
     3            IList lst;
     4            ISession session = SessionFactory.OpenSession();
     5            ITransaction transaction = session.BeginTransaction();
     6 
     7            lst=session.Find(strHQL);
     8            transaction.Commit();
     9            session.Close();
    10            return lst;
    11        }

  • 相关阅读:
    BZOJ1854: [Scoi2010]游戏
    NOIP2017 【游记】
    NOIP2017 考前汇总
    最长上升子序列nlogn算法
    BZOJ3110 K大数查询 【线段树 + 整体二分 或 树套树(非正解)】
    BZOJ1089 [SCOI2003]严格n元树 【dp + 高精】
    BZOJ1072 排列perm 【状压dp】
    NOIP2003 传染病控制 【搜索 + 卡时】
    BZOJ 1070 修车 【费用流】
    [SCOI2005]最大子矩阵
  • 原文地址:https://www.cnblogs.com/goody9807/p/507579.html
Copyright © 2011-2022 走看看