MVC+NHibernate笔记
Nhibernate 要求model实体类对于lazy="true" ,字段属性前需要加 virtual
sqlserver2005和oracle10g的hibernate.cfg.xml如何配置?
A:sqlserver2005配置如下
<!-- NHibernate sqlserver2005配置-->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="db1">
<!-- properties -->
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
<property name="connection.connection_string">
Server=.;initial catalog=NhibernateTest;User Id=sa;Password=sa
</property>
<property name="use_outer_join">true</property>
<property name="use_proxy_validator">true</property>
<!--<property name="show_sql">false</property>-->
<!--<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>-->
<!-- mapping files -->
<mapping assembly="Kang.Model" />
</session-factory>
</hibernate-configuration>
Oracle10g配置如下:
<!-- NHibernate Oracle10g配置-->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="db1">
<!-- properties -->
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.OracleClientDriver<</property>
<property name="dialect">NHibernate.Dialect.Oracle9Dialect<</property>
<property name="connection.connection_string">
data source=KANGSHI;User ID=huobj;Password=huobj
</property>
<property name="use_outer_join">true</property>
<property name="use_proxy_validator">true</property>
<!--<property name="show_sql">false</property>-->
<!--<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>-->
<!-- mapping files -->
<mapping assembly="Kang.Model" />
</session-factory>
</hibernate-configuration>
Q:无法将类型为“NHibernate.Dialect.MsSqlCeDialect”的对象强制转换为类型“NHibernate.Driver.IDriver”。
A:当切换数据库时,相应的connection.driver_class属性是需要调整
oracle10g是NHibernate.Driver.OracleClientDriver
MsSql2005是NHibernate.Driver.SqlClientDriver
Q:could not execute query
A:总的原则是,Nhibernate查询还是遵守sql原规则的。
1 字段名称不对,
2 字段格式不对,注意日期、数字和字符
3<property type="string" length="50" name="RoleName" column="[RoleName]" />
oracle必须把RoleName的[]去掉。而sqlsever去不用去[]都行。
Q:The type System.Int32 can not be assigned to a property of type System.String setter of Kang.Model.Entities.USR_UserInfo.LoginID
A: 主键LoginID原定义的是int ,应该改成string
Q:Invalid Cast (check your mapping for property type mismatches); setter of Kang.Model.Entities.USR_UserInfo
A:length="80" 必须小于数据库表中字段的长度。另外,就是实体类中属性类的类型要和nhibernate-mapping 中的type同。
Q:数据库中的Date、DateTime和TimeStamp类型区别?
A:
DATETIME, DATE和TIMESTAMP类型是相关的。本文描述他们的特征,他们是如何类似的而又不同的。
DATETIME类型用在你需要同时包含日期和时间信息的值时。MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。(“支持”意味着尽管更早的值可能工作,但不能保证他们可以。)
DATE类型用在你仅需要日期值时,没有时间部分。MySQL检索并且以'YYYY-MM-DD'格式显示DATE值,支持的范围是'1000-01-01'到'9999-12-31'。
TIMESTAMP列类型提供一种类型,你可以使用它自动地用当前的日期和时间标记INSERT或UPDATE的操作。如果你有多个TIMESTAMP列,只有第一个自动更新。
SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。
滴答数必须介于 DateTime.MinValue.Ticks 和 DateTime.MaxValue.Ticks 之间。
参数名: ticks
A:实体类中这样定义就ok了 private DateTime _CreateDate = new DateTime(2009 - 9 - 9);
Q:有的哥们这么写,但是问题是麻烦。
var whitelist = new[] { "UserId", "UserName", "UserParssord", "UserMail" };
UpdateModel(user, whitelist);
uService.UpdateUserInfo(user);
return RedirectToAction("Index");
A: 可以这样写
model = bll.GetModel(id);
UpdateModel(model);
bll.UpdateData(model);
return RedirectToAction("Index")
父子表关联映射 ==============================================
Q: 用户代码未处理 NHibernate.PropertyAccessException
Message="Invalid Cast (check your mapping for property type mismatches); setter of Kang.Model.Entities.USR_UserInfo"
Source="Kang.NHibernateHelper"
A:<!--多对一关系:Users属于一个Role-->
<many-to-one name="RoleID" column="RoleID" not-null="true" class="Kang.Model.Entities.RoleInfo" foreign-key="FK_RoleUsers" />
<!--一对多关系:Role有一个或多个Users-->
<set name="Users" table="`USR_UserInfo`" generic="true" inverse="true">
<key column="RoleInfo" foreign-key="FK_RoleUsers"/>
<one-to-many class="Kang.Model.Entities.USR_UserInfo"/>
</set>
Q:Duplicate property mapping of RoleID found in Kang.Model.Entities.USR_UserInfo
A:有重复的属性定义。属性对象化,页面调用显示时可以再调用属性的属性,如:model.RoleID.RoleName
Q:Could not initialize proxy - the owning Session is disconnected
A:对于父子关联表,把lazy="false"
MVC+NHibernate笔记的更多相关文章
- 年底小回顾(MVC+NHibernate+Jquery+JqueryUI——网站)
1.附:利用MVC+NHibernate+Jquery+JqueryUI这些技术可以做出一个比较好的前台+后台网站.下面是本人对这些技术的笔记,作为私人年底小结吧.呵呵 好久没写文章了,感觉下不了笔吐 ...
- MVC学习笔记
7 天玩转 ASP.NET MVC 阅读笔记 1.Web Form的问题 1.响应慢,web控件转化成html需要时间 2.带宽消耗,页面保存web控件的状态(viewstate) 3.由web控件生 ...
- MVC学习笔记索引帖
[MVC学习笔记]1.项目结构搭建及单个类在各个层次中的实现 [MVC学习笔记]2.使用T4模板生成其他类的具体实现 [MVC学习笔记]3.使用Spring.Net应用IOC(依赖倒置) [MVC学习 ...
- .NET MVC学习笔记(一)
看了些关于MVC的资料,做一些MVC的笔记. 分解关注点 在MVC世界里有个很重要的观念--"分解关注点"(Separation of Concerns),指的是:当你进行软件开发 ...
- ASP.NET MVC学习笔记-----Filter2
ASP.NET MVC学习笔记-----Filter(2) 接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用 ...
- ASP.NET MVC学习笔记-----Filter
ASP.NET MVC学习笔记-----Filter(1) Filter类型 接口 MVC的默认实现 Description Authorization IAuthorizationFilter Au ...
- “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成)
“MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成) 一.这篇文章主要是要实现:图片新闻的添加,无刷新图片的上传,以及添加新闻静 ...
- “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现)
“MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现) 一.前三篇的内容是否对您有帮助呢?如果有的话,请您继续关注这篇吧,这篇主要是实现”用户管理“的 ...
- “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构、登录窗口、以及主界面)
“MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构.登录窗口.以及主界面) 一.在上一篇文章中,主要说的就是把主框架搭建起来,并且Nhibernate能达到增 ...
随机推荐
- Swift 学习笔记 (类和结构体)
类和结构体是一种多功能且灵活的构造体.通过使用与现存常量 变量 函数完全相同的语法来在类和结构体中定义属性和方法以添加功能. Swift中不需要你为自定义的类和结构体创建独立的结构和实现文件.在Swi ...
- 使用qt+ros调用摄像头遇到的问题
当使用摄像头遇到如下问题:[usb_cam-1] process has died [pid 12288, exit code 127, cmd /opt/ros/indigo/lib/usb_cam ...
- 微信小程序开发:学习笔记[5]——JavaScript脚本
微信小程序开发:学习笔记[5]——JavaScript脚本 快速开始 介绍 小程序的主要开发语言是 JavaScript ,开发者使用 JavaScript 来开发业务逻辑以及调用小程序的 API 来 ...
- 5.2 《锋利的jQuery》jQuery对表格的操作(选项卡/换肤)
表格隔行变色以及单选/复选 表格展开关闭 表格筛选 字体变大/缩小 选项卡 网页换肤 tip1: $("tr:odd")和$("tr:even")选择器索引是从 ...
- 20145239杜文超 《Java程序设计》第4周学习总结
20145239 <Java程序设计>第4周学习总结 教材学习内容总结 第六章: 继承:避免多个类间重复定义共同行为.即当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多 ...
- 《CSS权威指南(第三版)》---第四章 值和单位
本章主要讲解的是一些属性声明用的值: CSS中的值主要有数字,百分数,颜色, 1.颜色: rgb(100%,100%,100%) OR rgb(255,255,255) OR #FF0000 WE ...
- linux中fflush函数和printf函数 【转】
本文转载自:http://blog.chinaunix.net/uid-30058258-id-5029847.html printf是一个行缓冲函数printf函数是标准函数,最终会调用到系统调用函 ...
- hihocoder #1040 矩形判断(计算几何问题 给8个点的坐标,能否成为一个矩形 【模板思路】)
#1040 : 矩形判断 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 给出平面上4条线段,判断这4条线段是否恰好围成一个面积大于0的矩形. 输入 输入第一行是一个整数T ...
- JMS消息可靠机制
ActiveMQ消息签收机制: 客戶端成功接收一条消息的标志是一条消息被签收,成功应答. 消息的签收情形分两种: 1.带事务的session 如果session带有事务,并且事务成功提交,则消息被自动 ...
- blog首页视图
声明:此Django分类下的教程是追梦人物所有,地址http://www.jianshu.com/u/f0c09f959299,本人写在此只是为了巩固复习使用 django 是如何处理 http 请求 ...