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

执行可运行

 

转载于:https://www.cnblogs.com/pangkang/p/6039786.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值