今天开始用Nhibernate做为自己的ORM,但是做的过程中确实遇到了好多问题,现在将问题收集起来以防日后出现相同的问题,

总结下:

这就是我的整个项目,现在配置下hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>
<!--
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it
for your own use before compile tests in VisualStudio.
-->
<!-- This is the System.Data.dll provider for SQL Server -->
<hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
    <session-factory name="NHibernate.Test">
        <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
        <property name="connection.connection_string">
      server=127.0.0.1;database=Subject;uid=sa;pwd=zhangwei
    </property>
        <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
  </session-factory>
</hibernate-configuration>

现在新建User.cs类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Subject.Model
{
    /// <summary>
    /// 用户表
    /// </summary>
    public class User
    {
        /// <summary>
        /// 用户id
        /// </summary>
        public string Id { get; set; }

/// <summary>
        /// 名称
        /// </summary>
        public string Name { get; set; }

/// <summary>
        /// 密码
        /// </summary>
        public string Password { get; set; }

/// <summary>
        /// 性别
        /// </summary>
        public string Sex { get; set; }

/// <summary>
        /// 个人简介
        /// </summary>
        public string BriefIntroduction { get; set; }

/// <summary>
        /// 创建时间
        /// </summary>
        public DateTime? CreateDt { get; set; }
    }
}

现在映射这个User.cs类,新建User.hbm.xml文件并且进行配置,如下:

<?xml version="1.0" encoding="utf-8" ?>
  <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
    namespace="Subject.Model" assembly="Subject.Model">
  <class name="Subject.Model.User" table="User" lazy="false">
    <id name="Id">
      <column name="Id" sql-type="varchar(40)" not-null="true"/>
      <generator class="uuid.hex" />
    </id>
    <property name="Name">
      <column name="Name" sql-type="varchar(20)" not-null="false" />
    </property>
    <property name="Password">
      <column name="Password" sql-type="varchar(20)" not-null="false" />
    </property>
    <property name="Sex">
      <column name="Sex" sql-type="varchar(2)" not-null="false" />
    </property>
    <property name="BriefIntroduction">
      <column name="BriefIntroduction" sql-type="varchar(500)" not-null="false" />
    </property>
    <property name="CreateDt">
      <column name="CreateDt" sql-type="datetime" not-null="false" />
    </property>
  </class>
</hibernate-mapping>

注意设置User.hbm.xml文件属性,XML文件的默认生成操作为“内容”,这里需要修改为“嵌入的资源”,

然后测试:

public IList<User> Get()
        {
            try
            {
                return _session.CreateQuery("from Subject.Model.User").List<User>();
            }
            catch (Exception e)
            {
                throw;
            }
        }

发现数据为空,如图:

不可能啊?因为数据库里有数据啊,如图:

这是怎么回事,找了好久,终于被我找到问题的所在,如图:

原来要加这个,但是运行之后又出现了问题,唉,写个NHibernate出现这么多问题,自己跟自己说:淡定!

你猜是什么问题?原来Sqlserver2008系统表里有User表,你再建这个表就会有歧义,当然就会出现问题了,

所以我把User表改成Users表就OK了!

终于成功了,不容易啊!

转载于:https://www.cnblogs.com/zhangwei595806165/p/3499562.html

Nhibernate配置和访问数据问题相关推荐

  1. ASP.NET MVC 1.0 + spring.net 1.2.0.20288 + NHibernate 2.0.1.4000整合笔记(三)——NHibernate配置...

    1.在CMS.App新增XML配置文件web_nhibernate.xml并设置为"嵌入的资源" 2.在Web.config中<spring> -> <re ...

  2. nhibernate 配置mysql_利用NHibernate与MySQL数据库交互

    本文章使用Visual Studio作为开发工具,并建立在已经安装MySQL数据库的前提. NHibernate是一个面向.NET环境的对象/关系数据库映射工具.官网:http://nhibernat ...

  3. Windows Server2016 安装及配置DFS实现数据复制

    Windows Server2016 安装及配置DFS实现数据复制 我们今天主要介绍的是Windows Server2016 安装及配置DFS实现数据复制,那什么是DFS呢?DFS就是Microsof ...

  4. Android Linux自带iptables配置IP访问规则

    利用Linux自带iptables配置IP访问规则,即可做到防火墙效果 初始化防火墙Chain规则 禁止指定app访问数据网络 禁止指定app访问wifi 转载于:https://www.cnblog ...

  5. SpringBoot中使用Thymeleaf常用功能(一):表达式访问数据

    环境搭建: 创建一个Maven项目,按照Maven项目的规范,在src/main/下新建一个名为resources的文件夹,并在下面新建static和templates文件夹. ①  修改pom.xm ...

  6. okhttp连接池_OkHttp配置HTTPS访问+服务器部署

    1 概述 OkHttp配置HTTPS访问,核心为以下三个部分: - sslSocketFactory() - HostnameVerifier - X509TrustManager 第一个是ssl套接 ...

  7. java定时增量同步,一种可配置的定时数据同步方法与流程

    本发明涉及数据交换技术,尤其涉及一种可配置的定时数据同步方法.解决企业内部异构系统之间的数据同步问题.主要利用计算机多线程技术.XML技术.数据库技术实现.具有简单配置.快速部署.灵活扩展的特点,并且 ...

  8. PostgreSQL数据库配置网络访问

    PostgreSQL数据库配置网络访问 安装PostgreSQL数据库之后,默认是只接受本地访问连接.若想在其他网段访问,这必须修改配置文件. 配置远 程连接PostgreSQL数据库的步骤很简单,只 ...

  9. 在 SharePoint 2010 中访问数据

    数据访问的关键方法有哪些? | 使用查询类 | 使用 SPQuery | 使用 SPSiteDataQuery | 使用 LINQ to SharePoint | LINQ to SharePoint ...

最新文章

  1. 面向对象程序设计第二次作业
  2. python 科学计算基础教程电子版-Python 科学计算基础 (整理)
  3. 页面置换算法(FIFO , LRU, OPT)(C++实现模拟)
  4. 【基环树DP】[NOI2012]迷失游乐园
  5. 我人傻了,火狐坏了,重启系统删了重下都搞不好那种,点开只有弹窗(已解决)
  6. Java –远景JDK 8
  7. 把所有圆圈连接起来的游戏_20个幼儿园体育小游戏教程
  8. vs code .lua.txt 后缀文件识别为lua的配置
  9. 《机器视觉算法与应用》第3章 机器视觉算法之数据结构——学习笔记
  10. DSP入门必看(非常好的DSP扫盲文章)
  11. 停车场管理系统软件详细设计说明书
  12. WIFI热点软件测试,用手机WiFi热点已OUT 华为随行WiFi Plus评测
  13. 软件设计(中线提取)
  14. 高通8953烧录之后报ERROR: UFDT apply overlay failed
  15. NDIS和Rndis区别
  16. 江苏省盐城中学信息竞赛队(YZOI)队规
  17. 仿慕课网Android端app——慕课Ime(自写服务器接口)
  18. 1-计算机系统概述(CO)
  19. 驻留内存 虚拟内存 共享内存
  20. windows中新建任何后缀的文件(包括无后缀名)

热门文章

  1. mysql命令:为mysql命令指定字符集
  2. maven的离线模式
  3. 在pycharm创建scrapy项目
  4. 中法线如何反转_凹凸贴图、法线贴图、置换贴图傻傻分不清?
  5. amd一点也不yes_A粉的狂欢,AMD显卡也翻身了,3A平台不再是笑话了,AMD YES!
  6. CentOS 8下安装MySQL8.0
  7. 计算机专业核心技术,计算机系多媒体核心技术实验室建设专业方案(10页)-原创力文档...
  8. 计算机网络-基本概念(11)【应用层】
  9. hadoop 运行wordcount
  10. 七、朴素贝叶斯中文文本分类