在 .NET Core 应用中使用 NHibernate NHibernate 最近发布了 5.1.3 版本, 支持 .NET Standard 2.0 , 这意味着可以在 .NET Core 2.0...包以及对应的数据库驱动程序(以 Npgsql 为例): dotnet add pakcage NHibernate dotnet add package NHibernate.NetCore dotnet...Include="NpgSql" Version="4.0.2" /> 3、 在项目中新建一个 Models 目录, 并创建实体类以及对应的 xml 映射文件, 代码如下...的常规做法, 因此不做过多介绍, 不熟悉的可以查阅 NHIbernate 的相关文档。...[0] NHibernate 5.1.3 (assembly 5.1.0.0) info: NHibernate.Cfg.Environment[0] hibernate-configuration
-- 数据库实例 id , 可以根据数据库进行修改 + nextval('public.snow_flake_id_seq') % 1000 -- 毫秒内的序列号, 求 1000 的余数, 保证在...数据库的到的结果为 id bigint name character varying(32) 1534042851390050075 snow flake id test NHibernate...配置 为了能够在 NHibernate 中使用, 需要根据上面的 snow_flake_test 表创建一个实体类, 代码如下: public class SnowFlakeTestEntity {...[xUnit.net 00:00:01.19] NHibernate: INSERT INTO public.snow_flake_test (name)...Test execution time: 4.5339 Seconds 毫无悬念, 单元测试通过, 可以在 NHibernate 中愉快的使用 Snow Flake ID 了。
NHibernate 缓存 NHibernate 支持两种级别的缓存, 即一级缓存以及二级缓存。...在 NHibernate 的参考文档中, 对 ISession 的描述如下: A single-threaded, short-lived object representing a conversation...NHibernate.Caches.SharedCache NHibernate.Caches.SysCache NHibernate.Caches.SysCache2 NHibernate.Caches.Velocity...也可以在实体类的 hbm 映射文件中配置使用二级缓存, 不过在 hibernate.cfg.xml 文件中统一配置是推荐的做法。...以上是在项目中用到的二级缓存相关知识的整理, 肯定不完整, NHibernate 的缓存还有更多的地方需要挖掘。
今天说一说Nhibernate_nhibernate与ef区别,希望能够帮助大家进步!!! 什么是NHibernate?...开发过程 HNibernate将会有一些工具帮助你,如:生成schema,根据映射文件(Mapping file)生成类,并更新schema(一个新开发者的建议).然而,在本文档中,前提是你已经手动的数据库的创建喝...- 映射文件 æ app.config - 带有Ado.net连接信息的配置文件(你也可以在代码中指定的) æ 一个叫做user的数据库表....在代码里面使用NHibernate是很简单的事情: 1. 创建一个Configuration对象. 2....Configuration对象知道所有在.Net类和后端数据库之间的映射关系, Configuration cfg = new Configuration(); cfg.AddAssembly("NHibernate.Demo.QuickStart
相对NHibernate“O/R”而言,IbatisNet是一种“Sql Mapping”的ORM实现。...NHibernate对数据库结构提供了较为完整的封装,NHibernate的O/R Mapping实现了PO 和数据库表之间的映射,以及SQL 的自动生成和执行。...程序员往往只需定义好了PO 到数据库表的映射关系,即可通过NHibernate提供的方法完成持久层操作。...使用IbatisNet提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的DotNet对象,这一层与通过NHibernate实现ORM 而言基本一致,而对于具体的数据操作,NHibernate会自动生成...同样的需求 ,IbatisNet 的工作量比 NHibernate 要大很多。
一、NHibernate简介 在今日的企业环境中,把面向对象的软件和关系数据库一起使用可能是相当麻烦、浪费时间的。NHibernate是一个面向.Net环境的对象/关系数据库映射工具。...NHibernate知道如何完成ORM映射的XML文件; 5.使用NHibernate的API来编程 三、NHibernate的使用 1....配置NHibernate (1)NHibernate的配置文件有两种:在桌面应用程序(WinForm)中为App.config,在网页应用程序(WebForm)中为web.config。...(1) 在类中声明NHibernate的Factory private static Configuration mCfg=new Configuration(); private static...NHibernate.ISessionFactory SessionFactory=null; (2) 在系统初始化的时候加载XML,并创建Factory mCfg.AddXmlFile(
在 NHibernate 的参考文档中, 对 ISession 的描述如下: A single-threaded, short-lived object representing a conversation...NHibernate 的二级缓存是可以扩展的, NHibernate.ControlLib 提供了几个实现, 分别适用于不同的场景: NHibernate.Caches.MemCache NHibernate.Caches.Prevalence...NHibernate.Caches.SharedCache NHibernate.Caches.SysCache NHibernate.Caches.SysCache2 NHibernate.Caches.Velocity...也可以在实体类的 hbm 映射文件中配置使用二级缓存, 不过在 hibernate.cfg.xml 文件中统一配置是推荐的做法。...以上是在项目中用到的二级缓存相关知识的整理, 肯定不完整, NHibernate 的缓存还有更多的地方需要挖掘。
转载:http://www.cnblogs.com/tenghoo/archive/2011/02/14/1954393.html NHibernate专题:http://kb.cnblogs.com/...zt/nhibernate/ NHibernate官方站点:http://nhforge.org/ NHibernate参考文档:http://nhforge.org/doc/nh/en/ 获取NHibernate...地址:http://sourceforge.net/projects/nhibernate/ public IList GetUserOrderByUserID(string userid...select p; return list.ToList(); } } NHibernate...分页的测试 http://www.cnblogs.com/chenyt/archive/2010/12/04/nhibernate.html
我们将使用如下的一张User表(假定你已经设置好一个数据库—在的例子里我称它为NHibernate)。...NHibernate 遵循和.Net Framework同样的规则来加载类型。因此如果你在如何指定类型的方面有些混淆,请参看.Net Framework SDK。...那里有一堆属性你需要调整来确定如何让NHibernate来访问数据库。再次说明,你可以在文档里获取更多信息。 NHibernate使用log4net来记录内部发生的一切。...在一个应用程序产品里,在你特定环境里,我推荐配置log4net,并为NHibernate设置一定的日志级别。 你还需要配置hibernate.cfg.xml文件: 在代码中实现)。
每个文件的详细代码在下面介绍 (2) 在NH.Data层引用Nhibernate相关的DLL ?...我们可以在该文件上点击右键选择属性进行修改。 (2) NHibernateHelper.cs数据操作辅助类 我们现在可以开始NHibernate了。...我们可以使用GoF23中的单例(Singleton)模式在程序中创建ISessionFactory。...这个实例我编写了一个辅助类NHibernateHelper 用于创建ISessionFactory并配置ISessionFactory和打开一个新的Session单线程的方法,之后在每个数据操作类可以使用这个辅助类创建...我们可以在People.hbm.xml点击右键选择属性修改该文件的生成操作 (5) NHData.cs对库表People进行增删改查 现在完事具备只欠东风了,开始我们的数据库CRUD操作,在看该文件的代码时
NHibernate实践与模式 NHibernate是一款非常优秀的O/R mapping的开源框架,再还没有.net的时候它已经存在于java环境中。...开发环境 Vs.net 2005, NHibernate 1.20(正是版),MyGeneration 1.3。...当然还有很多NHibernate的开发框架大家可以在www.codeproject.com,www.codeplex.com上找到。...然后再去创建数据库表,和UI的部分; 我还是按在有数据表的情况下如何用NHibernate作开发 1.用MyGeneration创建实体类和mapping文件选择NHibernate lujan99 1.06...这个模 块他提供可以方便实现1-n,n-1,n-n的mapping非常方便使用 2.在项目中加载这些创建好的文件建议加载到一个新的项目比如BusinessModule。
ORM大家都非常熟悉了吧,我相信也有很多朋友正在用自己或者一些公开的框架,而最常用而且强大的,非Hibernate了(Net中为NHibernate),网上的文档非常多,不过在博客园中,介绍NHibernate...在开始之前,我们先下载它的Dll,当然你也可以下载它的源代码进行修改和学习。...在NHibernate中,ISession是操作数据的核心,我们需要通过SessionFactory来建造ISession来进行数据的交互。...下面我们在代码中创建一个SessionFactory,NHibernate建议我们在一个应用程序中使用一个数据库一个SessionFactory,这里我们用单数据库,代码如下: public static...两者之间都各有长短,或许你还没有体会到Fluent的强大,在日后的Mappings时,你会慢慢了解为什么他会叫Fluent。
NHibernate Contrib Best Practice 介绍 NHibernate Contrib(Burrow)是一个轻量级的开发中间件,底层使用Nhibernate 2.0GA(Nhibernate...Burrow提供了智能化的状态,会话,使管理,事务让你更方便的使用Nhibernate进行.net应用程序的开发。..." type="NHibernate.Burrow.Configuration.NHibernateBurrowCfgSection" /> NHibernate.Burrow...type="NHibernate.Burrow.WebUtil.WebUtilHTTPModule,NHibernate.Burrow.WebUtil"/> NHibernate.Burrow.Configuration.NHibernateBurrowCfgSection" /> NHibernate.Burrow
学习和使用Nhibernate已经很久了,一直想写点东西和大家一起学习使用Nhibernate。博客园里也有很多大牛写了很多关于Nhibernate入门的文章。...其中:李永京的博客http://www.cnblogs.com/lyj/tag/NHibernate/ 内容最为丰富。而且在李哥的博客里面学了很多东西,在此致谢! ...本篇文章阅读对象是:Nhibernate初学者!如果你是Nhibernate的研究者或者已经很熟练的运用Nhibernate请不吝赐教,对本文不足之处进行指教。 带着问题去学习!...3、怎么搭建Nhibernate? 4、怎么使用Nhibernate? 好,我们就带着这几个问题开始我们的Nhibernate的旅程。 ...在Default.aspx 代码文件中添加如下代码 Configuration cfg = new Configuration(); cfg.Configure(Server.MapPath
NHibernate 使用 SqlQuery 多数情况下, NHibernate 提供的 HQL、 Linq 以及条件查询足够用了, 但是在某些情况下, 需要使用 SqlQuery, 使用 SqlQuery
开发过程 HNibernate将会有一些工具帮助你,如:生成schema,根据映射文件(Mapping file)生成类,并更新schema(一个新开发者的建议).然而,在本文档中,前提是你已经手动的数据库的创建喝...这些嵌入的Generator标记告诉NH怎样生成Primary Key(NH很方便的就能给你生成一个,不管是什么类型的,只要你告诉它怎样去做).在我们举的例子中,把它设置成”assigned”,意思是”...– 映射文件 æ app.config – 带有Ado.net连接信息的配置文件(你也可以在代码中指定的) æ 一个叫做user的数据库表....在代码里面使用NHibernate是很简单的事情: 1. 创建一个Configuration对象. 2....Configuration对象知道所有在.Net类和后端数据库之间的映射关系, Configuration cfg = new Configuration(); cfg.AddAssembly(“NHibernate.Demo.QuickStart
NHibernate是一个面向.NET环境的对象/关系数据库映射工具。 1. 创建项目文件 在Visual Studio开发工具里创建需要的项目结构。 2....在NHibernate中不用特殊的修饰就可以让对象和持久化层交互。...创建NHibernate映射文件 Nhibernate使用XML映射文件来映射POCO到数据库对象。虽然在很多案例中这可能是一对一关系,但这并不是必定的。... 在hibernate-maping...在本例中,我们使用Id这个字段。 generator元素告诉NHibernate怎样给新实体来创建唯一ID。 property标签是见得最多的标签。它简单地映射一个到数据表或者视图中对应字段的映射。
使用代码配置 NHibernate 多数情况下 NHibernate 使用配置文件进行配置, 但是我们也可以使用代码进行配置, 步骤如下: 1、 创建一个 Configuration using Nhibernate.cfg...; var config = new Configuration() .SetProperty("connection.provider", "NHibernate.Connection.DriverConnectionProvider...") .SetProperty("connection.driver_class", "NHibernate.Driver.SqlClientDriver") .SetProperty("dialect...", "NHibernate.Dialect.MsSql2005Dialect") .SetProperty("proxyfactory.factory_class", "NHibernate.Bytecode.DefaultProxyFactoryFactory...", connectionString); 2、 添加映射 using NHibernate.Mapping.ByCode; var mapper = new ModelMapper(); mapper.Class
NHibernate 配置使用 Formula 在 Nhibernate 的实体类映射中, 如果实体类的属性需要通过 SQL 计算才能得到, 则可以使用 Formula 选项解决。...Nhibernate 对 Formula 的要求如下: formula (optional): an SQL expression that defines the value for a computed...> nhibernate-mapping-2.2" assembly="Northwind" namespace="Northwind">...的空间扩展解决, 操作起来比较麻烦, 在客户端不需要空间数据类型或者不能处理空间数据类型的情况下, 可以用 Formula 处理。...> nhibernate-mapping-2.2" assembly="Northwind" namespace="Northwind">
连贯NHibernate(Fluent NHibernate) 是通过编程方式而不是使用XML配置文件创建NHibernate映射的API。...它的目标是在项目中运用NHibernate时减少所遇到的困难,提供更好的可读性、可测试性和编译时的安全性。...连贯NHibernate降低了复杂性,并进一步加强了约定胜于配置的原则,即任何一个映射的最常用设置是默认的。 除了编译时的检查外连贯NHibernate还为你的映射的测试提供了一个健壮的API。...Wiki上有教程告诉怎么用,园子里的inday的几篇文章可以先看一下: [原创]Fluent NHibernate之旅 [原创]Fluent NHibernate之旅二--Entity Mapping...[原创]Fluent NHibernate之旅(三)—继承 codeproject上也有一篇针对RC的文章:Fluent NHibernate and Linq2NHibernate – Demo Project
领取专属 10元无门槛券
手把手带您无忧上云