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

    执行可运行

  • 相关阅读:
    认识ASP.NET 中的 AppDomain
    试验总结1 改变递归函数中的执行内容
    试验总结2 break与continue
    开篇的话
    01复杂度3 二分查找
    02线性结构2 一元多项式的乘法与加法运算
    01复杂度2 Maximum Subsequence Sum
    02线性结构4 Pop Sequence
    01复杂度1 最大子列和问题
    02线性结构1 两个有序链表序列的合并
  • 原文地址:https://www.cnblogs.com/pangkang/p/6039786.html
Copyright © 2020-2023  润新知