• 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        }

  • 相关阅读:
    Python读写文件学习笔记
    前端轻量级、简单、易用的富文本编辑器 wangEditor 的基本用法
    选择本地文件上传控件 input标签
    push 和 append 以及appendchild 用法和区别
    关于时间获取和时间戳的换算
    动态设置html根字体大小(随着设备屏幕的大小而变化,从而实现响应式)
    JS 判断是否为安卓或IOS系统
    JS动态获取 Url 参数
    for 循环遍历数据动态渲染html
    VUE框架下安装自带http协议
  • 原文地址:https://www.cnblogs.com/goody9807/p/507579.html
Copyright © 2020-2023  润新知