ASP. NET MVC4 NHibernate篇

Nhibernate+MVC4项目实战 基于ASP.NET MVC4+Nhibernate的房屋租赁系统开发实战,不容错过 立即下载

本篇主要介绍一下asp.net项目开发的基础知识。要想独立开发一款基于NHibernate的项目,你需要掌握以下知识:C#语言及其编写、搭建项目架构、引用Spring和NHibernate文件、掌握NHibernate的三种数据库语句编写、配置NHibernate和Spring文件,以及Html、Css和Script( 可掌握easyUI、JQuery、angularJS和bootStrap )语言。


1、项目架构

项目一般包含以下部分:

Views:存放用于页面展示的文件,例如.aspx、.cshtml等为后缀的文件。

Configs:存放NHibernate的配置文件。

Controls:存放控制器。

IBLL:业务逻辑层接口。

BLL:业务逻辑层,处理业务上的逻辑判断等。

IDAO:数据访问层接口。

DAO:数据访问层,与数据库直接打交道。

Model:存放数据结构模型和模型映射文件。

Content:存放一些CSS文件和图片。

Scripts:存放JS脚本文件。

当然,根据需求不同,项目的架构也会随之改变。

2、配置文件

NHibernate的配置文件一般存放于Configs项目下。配置文件包括以下

Controls.xml:存放控制层的配置的文件。

Business.xml:存放BLL层的配置的文件。

DAO.xml:存放DAO层的配置的文件。

CommonDAO.xml。

实例:


Controls.xml:配置控制器层

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database">
  <object id="HomeController" type="Web.Controllers.HomeController,Web">
    <property name="UserBLL" ref="UserBLL" />
  </object>
</objects>

Business.xml:配置BLL层

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database">
  <object id="UserBLL" type="BLL.UserBLL,BLL">
    <property name="UserDAO" ref="UserDAO" />
  </object>
</objects>

DAO.xml:配置DAO层

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database">
  <object id="UserDAO" type="DAO.UserDAO,DAO">
    <property name="SessionFactory" ref="SessionFactory" />
  </object>
</objects>

CommonDAO.xml

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
         xmlns:db="http://www.springframework.net/database">
  <description>
    Definitions for the NHibernate Objects.
  </description>
  <!-- 数据访问对象替换位置 -->
  <object type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core">
    <property name="ConfigSections" value="databaseSettings"/>
  </object>
  <!-- Database and NHibernate Configuration  配置使用Nhibernate -->
  <db:provider id="DbProvider"
               provider="${db.provider}"
               connectionString="${db.connectionString}"/>

  <!--provider="SqlServer-2.0"  connectionString="database=BookDB;uid=sa;pwd=123456;server=.;"-->
  <object id="SessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate32">
    <property name="DbProvider" ref="DbProvider" />
    <property name="MappingAssemblies">
      <list>
        <!--这是配置嵌入资源 对应的xx.hbm.xml文件所在的项目名称-->
        <value>${nhibernate.domain}</value>
      </list>
    </property>
    <property name="HibernateProperties">
      <dictionary>
        <entry key="hibernate.current_session_context_class"
          value="Spring.Data.NHibernate.SpringSessionContext, Spring.Data.NHibernate32"/>

        <!-- session管道 -->
        <entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>

        <!--数据库方言-->
        <entry key="dialect" value="${nhibernate.dialect}"/>

        <!--数据库驱动-->
        <entry key="connection.driver_class" value="${nhibernate.driverclass}"/>

        <!-- 外连接 -->
        <entry key="use_outer_join" value="true"/>

        <!-- 是否显示SQL语句 -->
        <entry key="show_sql" value="${nhibernate.show_sql}"/>
      </dictionary>
    </property>
  </object>

  <object id="HibernateTransactionManager" type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate32">
    <property name="DbProvider" ref="DbProvider" />
    <property name="sessionFactory" ref="SessionFactory" />
  </object>

  <object id="TransactionInterceptor" type="Spring.Transaction.Interceptor.TransactionInterceptor, Spring.Data">
    <property name="TransactionManager" ref="HibernateTransactionManager" />
    <property name="TransactionAttributeSource">
      <object type="Spring.Transaction.Interceptor.AttributesTransactionAttributeSource, Spring.Data" />
    </property>
  </object>
</objects>

最后,别忘了给xml文件的属性设置为“嵌入的资源”。

控制器里要写上用到的IBLL层对象的申请。

BLL层要写上用到的IDAO层对象的申请。


3、Spring和NHibernate引用文件(版本必须要对应,否则会报错,以下是其中一种)

文件名 版本

Common.Logging 2.0.0.0
Common.Logging.Log4Net 2.0.0.0
Iesi.Collections 1.0.1.0(DAO)
log4net 1.2.10.0
NHibernate 3.2.0.4000(DAO)
Spring.Aop 1.3.2.40943(DAO)
Spring.Core 1.3.2.40943(DAO)
Spring.Data 1.3.2.40943(DAO)
Spring.Data.NHibernate32 1.3.2.40943(DAO)
Spring.Web.Mvc 1.3.2.40943
Spring.Web 1.3.2.40943
DotNetOpenAuth版本都要4.0.0.0


最后,你需要熟悉框架的流程以及数据传送( 如json等 )。

当用户浏览一个页面时,页面会将请求发送给控制层,然后通过业务逻辑层和数据访问层将相应的数据取出,通过Model回传给控制层,再由控制层决定该用哪个View来显示页面呈现给用户。


NHibernate 4.0.4 这是一个NHibernate 4.0.4开发包 立即下载

相关推荐

asp.net nhibernate

nhibernate配置nhibernate配置nhibernate配置nhibernate配置

ASP.NET MVC中使用Nhibernate(一)

一,摘要 在本篇文章中我们覆盖如何安装配置Nhibernate,以及在MVC中如何使用它. 二,什么是Nhibernate Nhibernate是一个应用于.NET中的对象-关系映射器,它将对象模型映射到关系型数据库,在本文中你将看到Nhibernate处理大部分持久层相关联的任务,从http://sourceforge.net/projects/nhibernate/files/站点下载N...

数据库天地 210

c# NHibernate 连接数据库

在c#中,创建一个winForm窗口,通过NHibernate连接数据库,实现对数据库文件的增删改查的基本操作,

在ASP.NET中使用NHibernate

关键还是会话工厂的建立和NHibernate的Session的管理问题。 会话工厂仍然是使用singleton模式建立。而session管理则和Wndows Form不同:Wndows Form可以保持长连接,以获得比较好的用户体验,因而可以使用ThreadStaticAttribute或者TLS来保存session;在Web Form中使用ThreadStaticAttribute则不会如期望的...

weixin_34390996的博客 159

Mvc+NHibernate简单示例

这是一个Mvc+NHibernate的简单示例, 仅供初学者参考!

生信实战|EffectorP3.0在植物病原菌效应子预测中的高效应用

本文详细介绍了EffectorP 3.0在植物病原菌效应子预测中的高效应用。通过机器学习模型,该工具能快速从海量分泌蛋白中批量预测胞质与质外体效应子,显著提升研究效率。文章提供了从环境配置、RNA-seq数据处理到批量预测的完整实战流程,并分享了结果解读与避坑指南,是生信研究人员进行病原物效应子鉴定的必备利器。

weixin_29195615的博客 301

C#框架NHibernate的学习

今天对C#中的框架NHibernate进行了一番学习,与Java中的Hibernate十分类似。 我这里只介绍一下简单的使用,通过数据库进行语句的查询,然后把数据显示在界面上。 首先是将NHibernate的包导入项目中,在Java中有Maven来解决,在c#中通过Visual studio的NuGet可以解决,点击工具—>NuGet包管理...

有问题请发邮箱dengyifanlittle@163.com进行讨论 1497

AI应用架构师总结:智能问答系统用户意图识别的8种方法与实践!

意图识别是智能问答系统的大脑入口,其技术水平决定了系统能否准确捕捉用户的核心诉求。本文系统剖析了从基础规则到前沿PLM的8种核心意图识别方法透明简单,冷启动快,维护成本高。中等规模场景基线,依赖特征工程。利用词义和局部/序列信息,训练成本高。当前最优精度,需大量资源。添加意图灵活,冷启动友好,精度可能略逊。提升鲁棒性,系统变复杂。解决歧义和自然交互的关键(多轮)。增强专业领域理解和推理能力。成功的意图识别模块需要:精准的意图定义(Schema)是前提!

AI云原生与云计算技术学院 1632

c# Winform中使用NHibernate的配置

NHibernate知识要点记录1、NHibernate的引用1.1 关于NHibernate学习可以参考的几个网址1.2 在winform项目中引用NHibername2、NHibernate的项目配置2.1 在app.config(或web.config)中配置NHibernate的数据库连接信息2.2 获取单例模式的ISessionFactory2.3 单例工厂模式的NHibernateHelper类3、持久化类及映射文件配置3.1、持久化类及映射文件的配置 1、NHibernate的引用 1.1 关

u011930054的博客 2344

Excel数据透视表实战:分组折线图制作与动态分析指南

数据可视化是数据分析的关键环节,其核心原理在于将抽象数据转化为直观图形,以揭示趋势、对比差异。在众多图表类型中,折线图因其能清晰展示连续数据随时间或其他序列的变化趋势,而成为趋势分析的利器。其技术价值在于通过视觉编码,将多维数据关系降维呈现,从而辅助决策。在业务分析、运营监控等应用场景中,常需对比不同分组(如产品线、销售区域)在同一时间序列上的表现,这正是分组折线图要解决的核心问题。本文聚焦于利用Excel数据透视表这一强大工具,高效构建动态分组折线图,并深入探讨数据透视表在数据重塑和图表自动化中的实战应用

weixin_29057237的博客 379

MT5交易软件系统源码

Manager配置的功能及权限:管理客户、开户,销户、入金、信用额度、修改定单、人工交易报表、设定点差、强制平仓、修改密码,设定持仓交割单或挂单小止盈止损点数;26、修改价格 27、更改K线图历史价格 28、同步历史数据;2、系统设置 3、交易管理 4、交易柜台 5、价格更改 6、多台服。务器联机 7、恢复交易历史 8、数据源调整 9、备份服务调整 10、交易市场设定 11、交易单更改 12、平台时间设定(全世界) 13、可添加商品;15、设置商品利息;独立主机(服务器、VPS、VM)

tutujunjun的博客 904

C# 中NHibernate使用及配置映射

C# 中使用Nhibernate 做ORM映射配置

andy5520的博客 1549

微服务架构的实施与挑战:前提判断、三种落地模式、收益兑现与风险应对

微服务是用运维复杂度换取演进自由度的一笔交易,是否划算取决于系统复杂度是否越过生产率曲线的交叉点。本文先给出实施前提:微服务溢价的六项成本、四项前置能力、康威定律与领域边界,并附就绪度自检表;再拆解三种落地模式:以绞杀者为代表的渐进剥离与数据五级迁移、以模块化单体起步的绿地建设、新旧并行的混合式集成;随后逐项审视六大技术优势与组织收益的兑现条件,系统梳理分布式谬误、分布式单体、Saga与幂等、弹性容错、可观测性、契约测试等挑战与对策,最后给出四阶段落地路线、DORA四项度量与常见反模式清单。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 172万+

Spring.Net+Nhibernate+ASP.MVC4.0+EasyUI实践(二)

目录 Spring.Net+Nhibernate+ASP.MVC+EasyUI实践(一) Spring.Net+Nhibernate+ASP.MVC+EasyUI实践(二) Spring.Net+Nhibernate+ASP.MVC+EasyUI实践(三) Spring.Net+Nhibernate+ASP.MVC+EasyUI实践(四)   上一篇博客对该项目的基层代码进行编写,这一

zll_zh的专栏 3960

DeepCAD: 使用深度自监督学习技术在Python中进行钙成像去噪的全面指南

钙成像是一种用于观察神经活动的技术,通过检测细胞内钙离子的变化来推断神经元的活动。由于其高时空分辨率和对活体组织的适应性,钙成像已经成为神经科学研究中的重要工具。然而,钙成像数据往往伴随着各种噪声,这些噪声可能来自于设备、生物样本或环境。为了获得准确的神经活动信息,去噪是非常关键的。深度自监督学习是一种使用未标记数据进行训练的机器学习方法。与传统的监督学习不同,它不需要大量的标记数据,而是通过学习数据的内部结构和模式来提取有用的特征。DeepCAD是一个基于深度自监督学习的钙成像去噪工具。

qq_38334677的博客 757

第十五章数据管理成熟度评估【6’】(DAMA-CDGA 2022年以后历年模拟题真题汇总,基本包含所有考点。)

第十五章数据管理成熟度评估【6’】(DAMA-CDGA 2022年以后历年模拟题真题汇总,基本包含所有考点。)

JasonH2021的博客 403

Spring.Net+Nhibernate+ASP.MVC4.0+EasyUI实践(一)

Spring.Net+Nhibernate+ASP.MVC+EasyUI实践 目录 Spring.Net+Nhibernate+ASP.MVC+EasyUI实践(一) Spring.Net+Nhibernate+ASP.MVC+EasyUI实践(二) Spring.Net+Nhibernate+ASP.MVC+EasyUI实践(三) Spring.Net+Nhibernate+ASP.M

zll_zh的专栏 4435

基于Simulink的占空比调制DTC降低转矩脉动

修改传统SVPWM模块,输入占空比d和有效矢量索引,计算Ton​=d∗Tc​、Toff​=(1−d)∗Tc​,生成对称PWM波形(替代开关表直接输出)。:低速时(n<500rpm)减小dmax​=0.6(避免磁链畸变),高速时(n>2000rpm)增大dmax​=0.8(提升动态响应);kT​/kψ​:转矩/磁链误差增益(需整定,如kT​=0.02/(N⋅m),kψ​=0.1/Wb);(θ为电压矢量与磁链夹角)。② SVM-DTC(占空比计算模块启用,d0​=0.5,kT​=0.02,kψ​=0.1)。

amy_mhd的博客 87

ASP.NET MVC4中使用NHibernate

1:下载安装NHibernate 打开 VS 2012新建一个 MVC4项目. 在项目名称上右击选择Manage NuGet Packages。你会看见 Manage Nuget Packages 页面. 在搜索框输入‘NHibernate’ 可以得到以下结果: 选择第一个并安装,安装完成后会引入以下两个.DLL文件 NHibernate Lesi.Co

766

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

ASP.NET MVC4 中整合 NHibernate3.3、Spring.NET2.0、ExtJS4 笔记一:简介

本人做了6年多的.NET开发,之前很少使用一些成型的企业级框架,很是遗憾。2个月前,经朋友介绍到一家java公司,公司从事业务系统开发,内部有成型的业务框架,属于ssh的二次开发。 在刚去公司的一段时间里,对Struts、Spring、Hibernate仅仅是简单的概念了解,没有一点开发经验。在自己痛苦的琢磨了几天后,终于顺利的搭建了ssh的开发环境。如果说ssh比较难,对有几年开发经验的人来说

图钉的笔记 4837

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

ASP.NET MVC4 中整合 NHibernate3.3

本文使用Mysql 5.1.6数据库,使用的Mysql.Data.dll是5.2.3,在测试环境下,Mysql.Data.dll 5.2.3访问Mysql 5.1.6是正常的,但不保证能稳定运行。 注:文章最后附源码地址。 下面说下详细的搭建步骤: 1、先部署数据库 这个网上太多,这里就不说了。 部署后创建测试库“lmj”,建议找个客户端工具使用,如SQLyog。然后再创建个测试

图钉的笔记 2207

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

整合asp.net mvc4,Spring.net,nhibernate实现分层开发

1,在web.config配置中添加如下配置信息,同时指定Spring.net的核心配置文件services.xml和Objects.xml。 --> --> 2,services

爱软件-从懂得生活开始。 3327

asp.net mvc4 mysql_ASP.NET MVC4整合NHibernate,FluentNHibernate,MySQL数据库的应用

Models层的类:public abstract class Entity{public virtual int Id { get; set; }}public class Thingy : Entity{public virtual string Name { get; set; }}HomeController类如下:public class HomeController : Control...

weixin_30811007的博客 158

4、ASP.NET MVC入门到精通——NHibernate构建一个ASP.NET MVC应用程序

下周就去办理离职手续了,之前没有使用过NHibernate,只知道NHibernate是一种ORM框架,但是听说新公司是使用NHibernate在做项目,所以,我就网上找资料学习一下NHibernate,在此以笔记的形式,记录自己的学习过程,一来供自己以后备忘用,而来希望对同样准备学习NHibernate的同行门有所帮助或提供借鉴。 什么是Nhibernate? NHibernate是一个面...

邹玉杰(邹琼俊)的专栏 144

ASP.NET MVC4整合NHibernate,FluentNHibernate,MySQL数据库的应用

Models层的类: public abstract class Entity { public virtual int Id { get; set; } } public class Thingy : Entity { public virtual string Name { get; set; } }HomeController类如下: public cla

极客神殿 1681
上一篇: NHibernate SQL 语句
下一篇: hge 的一些笔记
ColorWaterer
博客等级 码龄12年 16粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值