摘要:存储过程相当难说,将t-sql语句放入存储过程预编译后可以加快执行速度,但又时不时会将业务放入存储过程中,还会对orm产生不好的影响1. 创建一个存储过程 用 Menus表为处理对象createproc[dbo].[pro_insert](@titlenchar(10),@urlnchar(10),@parentint,@midint)asdeclare@unchar(10)set@u='proc'+@urlinsertintoMenusvalues(@mid,@title,@parent,@u)@u 是为了看到数据是由程序过程来决定的 , 注意注意: 存储过程的参数顺序就按表
阅读全文
随笔分类 - NHibernate
学习nhibernate的过程,入门级别
摘要:今天我们来看一下多对多的关系 Roles <-> Menus ,中间有一个关联表 RoleToMenu 。它们的关系是 一个角色可以有多个访问菜单,同样一个菜单可能被多个角色使用。多对多关系就出来了1. 首先处理Roles.cs文件,添加一个属性来存放 Menus 集合publicclassRole{publicvirtualintId{get;set;}publicvirtualstringR_name{get;set;}publicvirtualstringR_desc{get;set;}publicvirtualIList<Menu>Menus{get;set;}
阅读全文
摘要:今天我们来看一下一对多的关系,在我们的数据库中不能很好的表达出一对多的关系,一个角色对多个可访问的Menu,但中间还有一个RoleToMenu的表,所以今天我们用其它表来说明1. 新建一张订单表与顾客表, 一位顾客可以下许多的订单结构如下2. 创建两表的实体类Customer.cspublicclassCustomer{publicvirtualintId{get;set;}publicvirtualintVer{get;set;}publicvirtualNameUserName{get;set;}//publicvirtualstringFristName{get;set;}//publi
阅读全文
摘要:Users 表中有一个外键 是Roles表关联的,我们要将其关联起来1. 在User.cs 里面添加一个外键对象因为Users - Roles 是 one to one 的关系,那么在这我们只需要处理Users里面的信息publicclassUser{publicvirtualintId{get;set;}//publicvirtualstringU_name{get;set;}//publicvirtualstringU_pwd{get;set;}//publicvirtualintR_id{get;set;}publicvirtualLoginInfoLogInfo{get;set;}pu
阅读全文
摘要:组件: 类似于asp.net 里面的用户控件的作用, 指意是 需要将数据库里面的两个字段组合在一起组成一个新的属性出现,正见的是 FristName + LastName = FullName 这种操作应该如何操作?以Users表中的 U_name 与 U_pwd 两个字段为个案例,显然是不怎么恰当的1. 首先要将原实体类里面的两个字段给去掉 usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespacellr.Models{[Serializable]publicclassUser
阅读全文
摘要:在这里先放上我使用的感觉好一点的学习资料,介绍一下学习顺序,方便大家提高学习速度1. 请先看完前五遍文章,有源代码下的2. 请看这一个 NHibernate教程3. 再请看 NHibernate 帮助文档名字随意取的。是一个chm文档,对方法或一些其它东东有些介绍详细一些4. 其它的可以先自己写一个小程序再看看NB人写的程序可能会更好些
阅读全文
摘要:NHibernate 里面有三种查询方式,分别为1. 原始SQL语句查询,使用方法为session.CreateSQLQuery("selectId,u_name,u_pwd,r_idfromusers").AddEntity(typeof(User)).List<User>();使用 CreateSQLQuery()方法来实现,在里面有许多要注意的地方。 比如 不能直接调用.List<User>()方法返回值等。这边有找一个介绍比较详细的网页来讲明就不重复了http://blog.csdn.net/faye0412/archive/2009/09/
阅读全文
摘要:1. 数据访问层 需要一个类 UserSerivce.cs View Code usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingNHibernate;usingllr.Models;namespacellr.DAL{publicclassUserService{staticISessionsession;publicUserService(){session=newNHibernateHelper().GetSession();}publicstaticboolAdd(User
阅读全文
摘要:三层的数据访问层里面有一个dbhepler类,Nhibernate 也是有一个的。我们来写一个先取个名称为NHibernateHelper.csusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingNHibernate;usingNHibernate.Cfg;namespacellr.DAL{///<summary>///NHibernate操作辅助类///</summary>publicclassNHibernateHelper{privateISessio
阅读全文
摘要:想要实体与数据库关联起来就需要告诉nhibernate 我的数据库所在的位置,一般有两种方式 在Web.config 里面进行配置,还有一个写一个专门的xml文件进行配置,我所采用的是第一种web.config 配置<?xmlversion="1.0"?><configuration><!--使用configSections声明一个名叫hibernate-configuration的节点--><configSections><sectionname="hibernate-configuration"t
阅读全文
摘要:1. 新建一个web 项目 我的Web项目的名称是 NHibernateTemplate\llr.web 实体层名称 NHibernateTemplate\llr.Models 数据层名称 NHibernateTemplate\llr.DAL 业务层名称 NHibernateTemplate\llr.BLL 取名是为llr.* 是为了更好的通一命名空间,就不需要建好项目后再去修改默认命名空间或程序集名称了。llr为我姓名简称,大家可以自便2. 引用NHibernate 所需要的DLL文件 请看第一天内容3. 创建实体类 可以采用手工或 模板生成 去做, 本人纯手工,因为手工现在比较值钱 三个类
阅读全文
摘要:1. 需要NHibernate的DLL文件 网上有许多的资料,还有许多的教学资料,但找不到按照能运行成功的,在不断尝试着寻找后终于找到了可以运行在vs2010 + win7 +sql 2008环境下的DLL包,不过有些郁闷的是中间有几个DLL文件是属于其它框架的如:String.net,Castle等类库。在我blog里面有 NHibernate需要DLL文件2. DLL文件列表本案例用三层结构体现,为 BLL(业务), (DAL(数据), Models(实体)) ,WEB(表示)三层方便新手上路,一路走好文件名作用在哪需要NHibernate.dllNHibernate 运行所需的DLL,主
阅读全文
浙公网安备 33010602011771号