zoukankan      html  css  js  c++  java
  • Nhiberate (三)测试

    (一)添加数据:

            public void AddUser(User user)
            {
                ISession session = NhibernateFactory.GetInstance().GetSession();
                session.Save(user);
                session.Flush();
            }

    执行,报错“当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值

    把 User.hbm.xml文件中:

    《generator》节点class 改为 "native":

    <hibernate-mapping xmlns ="urn:nhibernate-mapping-2.2"
                       assembly="UserInformation.Domin" 
                       namespace="UserInformation.Domin.Entities">
      <class name="UserInformation.Domin.Entities.User,UserInformation.Domin"
              table="UserInformation" >
        <id name="Id" 
            type="Int32" 
            unsaved-value="null">
          <generator class="native"></generator>
        </id>
        <property name="Name"></property>
        <property name="PassWord"></property>
        <property name="UserType"></property>
      </class>
      
    </hibernate-mapping>

     (二)修改数据:

            /// <summary>
            /// 修改:
            /// </summary>
            /// <param name="id"></param>
            public void ModifyUser(int id)
            {
                ISession session = NhibernateFactory.GetInstance().GetSession();
                if (AllUser == null)
                {
                    AllUser = GetUserList();
                }
                var result = AllUser.FirstOrDefault(x => x.Id == id);
                session.Update(result);
            }
    
            public void ModifyUser(User user)
            {
                ISession session = NhibernateFactory.GetInstance().GetSession();
                session.Update(user);
                session.Flush();
            }

      测试修改:

            [TestMethod]
            public void ModifyUserTest()
            {
                UserData userData = new UserData();
                var result = userData.GetUserList();
                var updatedUser = result.FirstOrDefault(x => x.Id == 33);
                updatedUser.Name = "改过以后的名称";
                userData.ModifyUser(updatedUser);
            }

     (三) 删除:

     public void DeleteUser(int id)
            {
                ISession session = NhibernateFactory.GetInstance().GetSession();
                if (AllUser == null)
                {
                    AllUser = GetUserList();
                }
                var result = AllUser.FirstOrDefault(x => x.Id == id);
                session.Delete(result);
                session.Flush();
            }
    
            public void DeleteUser(User user)
            {
                ISession session = NhibernateFactory.GetInstance().GetSession();
                session.Delete(user);
                session.Flush();
            }

    删除测试:

       [TestMethod]
            public void DeleteUserTest()
            {
                UserData userData = new UserData();
                var result = userData.GetUserList();
                var updatedUser = result.FirstOrDefault(x => x.Id == 32);
                userData.DeleteUser(updatedUser);
            }

    执行可运行

  • 相关阅读:
    [Erlang 0116] 当我们谈论Erlang Maps时,我们谈论什么 Part 1
    致鸡鸣狗盗
    一个技术人的知识管理方法论
    一碗清酒聚知音 我看 《少年黄飞鸿-铁马骝》
    [Erlang 0115] 2014值得期待的Erlang两本新书
    [Erlang 0114] Erlang Resources 小站 2013年7月~12月资讯合集
    我的2013 Q.E.D
    Elixir
    [Erlang 0113] Elixir 编译流程梳理
    [Erlang 0112] Elixir Protocols
  • 原文地址:https://www.cnblogs.com/pangkang/p/6039786.html
Copyright © 2011-2022 走看看