以下是我在使用NHibernate过程中遇到的一些小问题,记录下来,权当笔记吧!

1.自增序列与严格类型匹配
    在使用Oracle数据库的自增主键时,hbm.xml配置文件中generator class可设为"increment",也可设为"sequence",最好使用"increment",使用"sequence"有时在插入obj时会抛出“ORA-02289: 序列(号)不存在”异常!
    另外,在load object时,传入的ID的类型要与数据库的严格一致。比如如下自增主键:

        <id name="Id" type="Int64" >
            <column name="ID" sql-type="NUMBER" not-null="true" unique="true" index="IDPK"/>
            <generator class="sequence" />
        </id>

当使用下列语句时,将抛出异常--"identifier type mismatch\r\n参数名: id" :

VERDUEMESSAGE nMsg = (OVERDUEMESSAGE)session.Load(typeof(OVERDUEMESSAGE),2) ;

但是如果像下面这样,就ok了:

            long ID = 2 ;
            OVERDUEMESSAGE nMsg = (OVERDUEMESSAGE)session.Load(typeof(OVERDUEMESSAGE),ID) ;

2.如果使用Oracle数据库的自增主键,则ISession.Save()方法返回主键值。

3.Oracle自增序列创建
(1)创建序列SEQ_TEST
(2)在目标字段上创建触发器

BEGIN
SELECT XTGL.SEQ_TEST.NEXTVAL INTO :NEW.ID FROM DUAL;
END;

4. No size set for variable length data type: String
    原因,在Oracle中,不支持插入0长度的字符串(即 ""),必须将该参数的值设置为null(如果是DataRow,则将对应的字段设为System.DBNull.Value,如 newRow[0] = System.DBNull.Value ;),问题就解决了。
5. 大小写
    在Oracle中创建表时,表名和所有的列名都将被转化为大写。在访问Oracle中的表时,SQL语句中的表名一定要用全大写,而列名的大小写则可以忽略。

NHibernate 与Oracle 点滴相关推荐

  1. ADO.NET、ODP.NET、Linq to SQL、ADO.NET Entity 、NHibernate在Oracle下的性能比较

    下面我对Oracle数据库在.NET平台下的主要几种数据访问方式进行测试. 下面是测试表: CREATE TABLE CUSTOMERS ( "CUSTOMER_ID" NUMBE ...

  2. oracle 插入n字母,Nhibernate在oracle批量插入失败,求解?

    100 加了这句,发现在oracle不起作用.一样的代码,如果在sql08下运行能生效. using (var session = SessionFactory.NHSessionFactory.Op ...

  3. bitwise oracle,linq – 与NHibernate和Oracle的Bitwise AND

    我正在使用Fluent NHibernate 1.0RC(对于NHibernate 2.1.4000)以及 Linq 2 NHibernate,我想用按位和操作执行查询.我第一次尝试使用这样的Linq ...

  4. oracle以查询多括号报错,oracle点滴积累

    文章已移至新博客:http://www.youzitool.com/index/detail/id/24.html 本文主要对oracle的一些常用或易犯错的知识点进行积累总结,根据工作情况将不断更新 ...

  5. 【转】NHibernate入门教程

    开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo 摘要: 热衷于开源框架探索的我发现A ...

  6. Nhibernate心得

    目 录 1.有关Nhibernate2 2.nhibernate的环境配置. 2 2.1  Web.config配置文件. 3 2.2 添加Loglist.hbm.xml4 3.nhibernate代 ...

  7. 使用NHibernate, Oracle Clob/NClob无法插入

    NHibernate配置的Driver为NHibernate.Driver.OracleClientDriver,存入Clob.NClob字段,值比较大时报错,错误信息 中文:ORA-01461: 仅 ...

  8. Linux 下Oracle Client JAVA JDBC 集成点滴

    首先Java下根据JDBC规范连接数据库,有几种形式,参考 http://djdnmq.iteye.com/blog/356468 oracle 驱动oci thin 区别 Oracle客户端准备 1 ...

  9. ado.net访问ORACLE数据库点滴

    不知是不是受到微软影响,.net程序员似乎与生俱来与MS SQLSERVER密不可分,我所认识的.net开发者都用微软的MS.我也忘记了当时为何不加任何考虑的就投入了SQL SERVER的怀抱,陪伴着 ...

最新文章

  1. 市政管网检测机器人收费标准_泰州泰兴新街镇市政管道机器人检测怎么收费
  2. hadoop目录命令
  3. matlab生成图像路径列表和标签,打乱顺序
  4. [读书笔记] 代码整洁之道
  5. 一张图看懂python编程
  6. GemBox Spreadsheet Professional 2.9
  7. android 电话拨号器
  8. 中国可生物降解和生物可吸收支架行业市场供需与战略研究报告
  9. laravel-excel文档翻译笔记
  10. C# 设计模式巩固笔记 - 建造者模式
  11. JDBC 连接 SQL2005 解决办法
  12. Luogu 4492 [HAOI2018]苹果树 组合数
  13. Java的测试方法有哪些?自动化测试让Java测试变得更简单!
  14. Excel 计算标准差
  15. 二倍图css,二倍图/三倍图的分辨率问题
  16. 服务器预防性维护检查表,高速公路机电系统预防性维护
  17. 【无标题】VisualStudio2022断点调试
  18. 增量学习三个场景的理解
  19. 【LOJ6713】「EC Final 2019」狄利克雷 k 次根 加强版(狄利克雷生成函数)
  20. 安卓判断APP是在前台还是在后台

热门文章

  1. 全球及中国重型设备备件行业发展动态及未来趋势调研报告2021年版
  2. HTTP协议的头信息详解
  3. JUnit 测试含有控制台输入的方法
  4. 关于SUID、SGID、Sticky
  5. MVC项目开发中那些用到的知识点(Asp.Net Mvc3.0 Areas)
  6. css之align 与 valign 的用法比较
  7. centos5安设apache和svk运用域用户验证
  8. 数据可视化必修课 - 图表篇
  9. 产品经理的高阶能力:商业思维基于商业画布的研习方法论
  10. 10次迭代9次delay??拒绝项目延期,这里有一整套方法!