NHibernate是Hibernate公司在Java自动生成领域取得巨大成功后推出的一款ORM工具....C#代码生成器 官方网站:http://www.maticsoft.com 官方论坛: 版权形式:免费 开源:否 1.6 CodePlus 专为sql server c#语言设计的代码生成器,功能还是很强大...使用MyGeneration 可以为Gentle.NET, Opf3, NHibernate等生成ORM架构或ORM文件,为多种数据库生成存储过程,为.Net项目生成C#、VB.NET 程序代码,PHP...: 版权形式:免费 开源:是 1.19 JunJava JunJava 一个java程序代码自动生产的工具。...独立),XDoclet是EJBDoclet的后继者,而EJBDoclet是由Rickard Oberg发起的。
最近事情太多,很久没有更新简书,突然想起如何提高程序员人效这个问题,就推荐一篇代码生成工具/框架的文章。...C#代码生成器 官方网站:http://www.maticsoft.com 官方论坛: 版权形式:免费 开源:否 6 CodePlus 专为sql server c#语言设计的代码生成器,功能还是很强大...使用MyGeneration 可以为Gentle.NET, Opf3, NHibernate等生成ORM架构或ORM文件,为多种数据库生成存储过程,为.Net项目生成C#、VB.NET 程序代码,PHP...程序代码自动生产的工具。...独立),XDoclet是EJBDoclet的后继者,而EJBDoclet是由Rickard Oberg发起的。
4.构建一个让NHibernate知道如何连接数据库的配置文件 5.使用NHibernate的API 第一步:写构建表的SQL 这里我们将使用的是一个非常简单的例子...简要看一下,你将发现NHibernate所要做的工作。name属性的值正是我们.Net 类的属性,column属性值将是我们数据库里的字段。...最直接的办法是在你的应用程序的配置文件(App.config)里设置一个NHibernate配置节。配置如下: 确定如何让NHibernate来访问数据库。再次说明,你可以在文档里获取更多信息。 NHibernate使用log4net来记录内部发生的一切。...在一个应用程序产品里,在你特定环境里,我推荐配置log4net,并为NHibernate设置一定的日志级别。 你还需要配置hibernate.cfg.xml文件: <?
color maps, and visualizations: GOES-16-17_FireDetection.js GOES-16-17_FireReclassification.js GOES卫星是由...NOAA运行的地球静止气象卫星。...火灾(HSC)产品包含四张图像:一张是火灾掩码形式,另外三张是确定火灾温度、火灾面积和火灾辐射功率的像素值。...ABI L2+ FHS元数据掩码为每个地球导航的像素分配一个标志,表明其在FHS算法方面的处置。...对误报容忍度最低的操作用户应关注 "已处理 "和 "已饱和 "类别(掩码10、11、30和31),但在这些类别中仍可能有误报。 阅读提示 NOAA为建议的类别、彩图和可视化提供了以下脚本。
前言 上一篇《C# 数据操作系列 - 11 NHibernate 配置和结构介绍》 介绍了Nhibernate里的配置内容。这一篇将带领大家了解一下如何使用NHIbernate。...接下来,让我们探索class如何映射成的。 1.2.1 id 任何一个映射都必须声明一个数据表的主键,大多数类也必须有一个唯一标示字段用来区分不同的实例。...id节点处添加,最常用的是native。...2.2 修改 NHibernate的修改与EF类似,也是由ISession监控了修改,不用做过多的操作。...不过在本篇内容完结之前,先补充一个NHibernate的SqlDialect选值: 数据库 Dialect 备注 DB2 NHibernate.Dialect.DB2Dialect DB2 for iSeries
基于DbConnection和DbCommand实现,并非直接暴露给应用程序,但是可以由开发者对其进行扩展或实现。...配置项介绍 在上一篇文章中,我们介绍了一下如何设置NHibernate的基本配置项,但是并未对配置项进行深入。...max_fetch_depth 最大递归深度,表示一次查询中直接加载的导航属性深度。默认是不直接加载导航属性,基于延迟加载的逻辑,由实际使用时才从数据库中加载数据。...hbm2ddl.auto 该值表示每次ISessionFactory创建的时候,是否自动生成DDL语句并提交数据库执行。默认是空,表示不会强制更新数据库。...总结 这是一篇枯燥乏味的说明文,主要介绍了Nhibernate的基本内容。下一章我们来试试,如何创建Nhibernate的映射配置。
Starter Kits 是一个所有源代码开放的示例应用程序,它演示如何通过它来实现特殊 的复杂的软件功能.这个工具包非常简单,但却非常完善,并且推崇和吸引程序员们在它的基础之上开发软件项目....起初,IBuySpy Portal的目的是为了演示,ASP.NET是如何能够构架出一个动态的,数据驱动的门户软件,但是 很快的,微软的 .NET研发中心将IBS变成了为他们自己开发ASP.NET应用程序所必须的一个组件...但是我不是做网站的,而是做应用系统的开发,应用系统的开发主要是业务逻辑开发和数据库层的开发。所以说业务层的开发是少不了的。...,用于网站搜索和模块设置 ModuleNameInfo.cs定义实体对象,用于UI和Controller,Data相互传值 SqlDataProvider.cs具体的数据库访问类(Sql数据库)...代码重构 生成Nhibernate实体类和Xml文件可以使用CodeSmith或是MyGeneration 应用Nhibernate封装好的NHibernate.Repository类库(在
程序,而无需了解如何使用 Socket,如何维护Socket连接,Socket是如何工作的。...,由线程池来管理线程,可以减少死锁的出现。...SmartThreadPool还支持简单的生产者-消费者模式,当不需要对任务进行持久化时,还是很好用的。...因此对于那些在 基于.NET的中间层的应用中,它们实现面向对象的业务模型和商业逻辑的应用,NHibernate是最有用的。...Ubik Ubik是C# 2.0下的ORM持久层框架,当前是WinForms应用程序开发提供的.它支持OPath的子集而可以进行面向对象查询,且包含一个网络事件系统.
MSVSMON: 远程Debug 监控器 (msvsmon.exe) 是一种轻量级的应用程序,能够远程控制VS来调试程序。...用于捕获TCP 层的拥塞状况,还能帮你过滤无效信息。 Svc TraceViewer: 提供文件追踪视图,是由WFO提供的。...Internals Viewer for SQL Server: Internals Viewer 用来在SQL Server 的存储引擎中的查找工具,以及获取数据在物理层是如何分配,组织和存储的。...NHibernate NHibernate Mapping Generator : 生成 NHibernate 映射文件,并从存在的数据库表映射到领域类。 ...代码Review StyleCop: StyleCop 是静态代码分析工具,能够统一设置代码样式和规范。 可以在Visual Studio 中使用,也可以集成到 MSBuild 项目。
[由 Cheung Tat Ming提供] AutoPoco:AutoPoco 是一个高度可配置的框架,用于流畅构建可读的来自于 Plain Old CLRObjects 的测试数据。...:LINQPad 是一个轻量级的工具,用于测试对 SQL Server 数据库的 LINQ 查询。它也可以测试用不同的 .NET 语言,如C#,VB 等写的代码片断。...Internals Viewer for SQL Server:Internals Viewer 是一个查看 SQL Server 存储引擎,查阅数据如何物理分配,组织和存储的工具。...NHibernate NHibernate Mapping Generator:生成 NHibernate 映射文件和对应于现有 DB 表的实体类。 11....代码审查 StyleCop:StyleCop 是静态的代码分析工具,它强制你的 C# 源代码执行配置风格和一致性规则设置。
在NHibernate中出于性能的考虑,经常使用Lazyload的方式来加载关联的对象,关于什么是Lazyload,以及怎么使用,可以参见博客园中的文章,比如:http://www.cnblogs.com...但是今天在调用另外的方法,然后在调用Flow.Node时,又出现了这个异常,这让我十分郁闷,我明明指定了Flow.Node是立即加载的,那么怎么还是会被系统转换为NodeProxy了呢?...我在调用Flow.Node之前,调用了Task对象,所以NHibernate根据Task的Mapping设置,将Node设置为动态代理类,同时将Node缓存到了Session中,然后再调用Flow.Node...时,系统就会先从缓存中查找是否有对应的Node对象,结果正好有NodeProxy的缓存,所以就直接返回NodeProxy给Flow.Node了,系统根本没有检查Flow.Node是不是立即加载还是懒加载...所以要解决这个异常的话,有两个办法,一种是将Task.Node也设置成为立即加载,那么就不会有NodeProxy对象在缓存中。
用于开发项目的高级语言(C#、Java等)是面向对象的,而关系型数据库是基于关系的,两者之间的沟通需要一种转换,也就是对象/关系数据库映射(Object/Relational Mapping,简称ORM...C#可用以解决对象/关系数据库映射的工具有多种,常见的有EF (Entity Framework)、NHibernate、iBATIS等,各自的优缺点及适用场景在此不做讨论,本文只对如何使用NHibernate...添加对NHibernate的引用 当下载并解压NHibernate安装包后,电脑上就会创建一些目录,包括“Required_Bins”,要把 Required_Bins目录下的DLL引用到项目里来,它们是...要注意的是所有需要持久化的属性必须是虚拟的,并且要开启延迟加载,所有数据模型类中的公共方法必须是虚拟的,哪怕它们并没有包含到映射文件中。 通常来讲,最好把所有的属性都设置为虚拟的。...一旦XML文件创建好了,需要更改XML的生成方式确保它被设置为嵌入式资源,否则NHibernate不会读取这个XML文件,那么映射就不会生效了。
C#—Nhibernate探索 本篇文章,让我们一起来探索Nhibernate。 首先我们去搜索Nhibernate下载地址,如下链接所示。 该版本可能是最新版,我下载的4.0.4.GA。...这里有两个类库;可以分析得出,这两个类库是要被引用的。 类库拥有对应的XML,没找到具体使用该XML的方法。所以暂时不去理他。 NHibernate.pdb应该是没有用的。估计是作者忘记删除了。...虽然感觉,这俩文件好像不是这么用的,但由于可以判断它们并不影响程序运行,所以,先且不管他们,等程序运行起来后,再删除他们试试。 再之后,我上网调查了下Nhibernate的应用。...调查结果: 对象与数据库的映射是保存在XML文件中的,于是我配置XML映射文件如下。 该XML文件的属性,要求设置其生成操作为【嵌入的资源】。 但我怕它丢失,还给他设置了始终复制的属性。...我并不清楚那几个点的原理和含义,因为我没看Nhibernate的原代码。 虽然本文是讲述,配置Nhibernate;但我更想讲述的是,面对未知的框架入手学习和使用的方法。
对于Bidirectional的情况,那么在保存数据到数据库时就会涉及到一个问题,如果两边的数据不一致,也就是mismatch,到底是以Order中的Items为准还是以OrderItem中的Order...Type: Int64 (0)], @p1 = 100000000100001 [Type: Int64 (0)] 仔细分析这些SQL语句,就会发现在insert保存U1时,其DepartmentId是有值的...所以一般建议在Mapping时设置Inverse为True。对应的,在Code中也需要设置OrderItem对Order的引用。 Inverse更大的用处是在ManyToMany的时候。...如果两边Inverse=False的情况下,ManyToMany是任意一边设置集合并保存就有效,如果两边都设置的话,会保存多次。...Mapping后,就可以生成正确的SQL语句,当然如果把C#代码中的6行和7行去掉,结果也是正确的,因为现在系统只认Emp中的Awards集合了。
NHibernate 介绍 NHibernate是Hibernate的C#版,众所周知Hibernate是Java 里ORM的顶梁柱(至少曾经)。...而NHibernate这继承了这一点,也是以配置文件优先。下图是 NHibernate的工作原理: ?...C# 项目中,除了Web类型的项目,每个项目的主配置文件的名称都是App.config,这是一个固定名称。 文件内容如下: NHibernate"/> 这段代码的含义是,在config文件中添加一个 hibernate-configuration结点,结点的解析由类:NHibernate.Cfg.ConfigurationSectionHandler...,所在包是NHibernate。
使用Fluent NHibernate的最大好处是降低了出错的机会,因为Fluent Nhibernate的配置是使用C#来编写,可以智能感知,而且还能编译,不像原始的XML配置,写错了都不知道。...Hilo值的主键生成方式,使用一个表HIBERNATE_UNIQUE_KEY存储每个表的流水。...+“_ID” if (instance.Type == typeof(long))//接下来设置主键的生成方式为HiLo值方式 { instance.GeneratedBy.HiLo...TYPE的列 } } 然后就是关于DiscriminateColumn中的值如何映射成对应的Subclass,需要实现ISubclassConvention接口,代码如下: public class...最后是将这些接口通知给FluentNhibernate,让其应用这些接口,导入指定Assembly中的DomainModel,具体的实现方法是: public virtual AutoPersistenceModel
那么,在目前的.NET(C#)的世界里,有哪些主流的ORM,SqlSugar,Dapper,Entity Framework(EF)还是ServiceStack.OrmLite?...在开发过程中参考了NBear与MySoft,吸取了他们的一些精华,加入新思想,同时参考EF的Lambda语法进行大量扩展。该组件已在数百个成熟项目中应用。...推荐等级:★★★☆☆ NHibernate NHibernate是一个面向.NET环境的对象/关系数据库映射工具。...推荐等级:★★★☆☆ 以上是笔者收集整理的部分目前.NET(C#)中流行的ORM框架。 如果你还有其他更好的ORM,欢迎留言,交流。 如果你觉得本文对你或者他人有帮助,请点个赞吧。...本文同步发表至 图享网 《目前的.NET(C#)世界里,有哪些主流的ORM--SqlSugar,Dapper,Entity Framework(EF)还是...》
如何选择合适自己的ORM框架? 对于我们而言选择ORM框架的目的其实都是为了让我们的程序更好的操作数据库,提高开发编程效率和程序的维护拓展性。...EntityFramework.TypedOriginalValues - 通过某些特殊方法来获得数据库对象在本次修改前的原始值。常见的使用场景是对数据库操作的数据做审计。... NHibernate 是一个成熟的开源对象关系映射器,适用于 .NET 框架。...您的查询由 C# 编译器检查并允许轻松重构。 但是,它不像 LINQ to SQL 或实体框架那么重。...开源软件——它是一个开源软件,并且永远是免费的。它旨在进一步改进 .NET 数据访问体验和解决方案,以及社区的集体思想。 高质量- 它是一个高质量的微型 ORM,由 10K+ 真实单元和集成测试支持。
领取专属 10元无门槛券
手把手带您无忧上云