.NET 常用ORM之NHibernate】的更多相关文章

NHibernate做.Net应该都不陌生,今天我们就算是温故下这个技术,概念性的东西就不说了,这次主要说本人在实际使用的遇到的问题,比较费解现在就当是记录下,避免以后再犯.本次主要使用的情况是1对N多表关联操作,具体情况如下(给出主要代码): 一.NHibernate配置 (1) 引入动态库 Antlr3.Runtime.dll.NHibernate.dll.Newtonsoft.Json.dll.Iesi.Collections.dll相关动态库,用NuGet导入即可 (2)配置文件 con…
一.ORM ORM(Object-relational mapping),即对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术.也就是说,ORM是通过使用描述对象和数据库之间映射的元数据(映射文件信息),将程序中的对象自动持久化到关系数据库中. 二.为什么使用ORM 我们知道后台操作数据库,通常是原生的ado.net,需要写sql语句,每一次执行,都要打开/关闭数据连接,这样在开发的过程是很麻烦的,而且开发效率低.为了解决这个问题,ORM也就顺势而生了, 优点如下: 1.…
最近框架项目需要,数据层想使用Nhibernate,代替传统的sql语句的写法,更加使用面向对象的思维来维护实体与数据库的这层关系映射(ORM),好在之前接触过Java时学习使用了Hibernate,先来了解ORM.    什么是ORM? 对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的.面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统.对象和关系数据是业务…
一.SubSonic简单介绍 SubSonic是一个类似Rails的开源.NET项目.你可以把它看作是一把瑞士军刀,它可以用来构建Website和通过ORM方式来访问数据.Rob Conery和Eric Kemp是推动SubSonic的主要开发人员,与项目良好的发展有着密切的关系.是一个优秀的.开源的ORM映射框架. 另外官方有提供符合自身需要的代码生成器sonic.exe,但是笔者在SubSonic并未下载到类代码生成器,而是按照SubSonic的映射规则,在之前的用过的SubSonic的类上…
ibatis 一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目,到后面发展的版本叫MyBatis但都是指的同一个东西.最初侧重于密码软件的开发,现在是一个基于Java的持久层框架,渐渐的也把这种模式转移到了net.相对NHibernate等“一站式”ORM解决方案而言,ibatis 是一种“半自动化”的ORM实现.性能不错. 下载地址:http://code.google.com/p/mybatisnet/download…
.Net常用的就是微软的EF框架和Nhibernate,这两个框架用的都比较多就不做详细介绍了,今天我们来看看Gentle.Net,Gentle.Net是一个开源的优秀O/R Mapping的对象持久化框架.Gentle.Net在配置和使用上要远比NHibernate简单很多. Gentle.Net可以说是比较容易上手,语法使用也相对简单,但Gentle.Net的使用要依赖一个东西,那就是代码生成器,因为这对于它来说,是最重要的一步了,这个代码生成使用起来也很方便,本文也会给大家来介绍这个代码生…
前言: 最近由于工作需要,需要选用一种ORM框架,也因此对EF Core.FreeSql.SqlSuger作简单对比.个人认为各有有优势,存在即合理,不然早就被淘汰了是吧,所以如何选择因人而议.因项目而议,下面开始正题. 本篇文章不讲解基础知识,如有需要可移步到相应官网:EF Core官方文档:https://docs.microsoft.com/zh-cn/ef/,FreeSql官方文档:http://freesql.net/guide.html,SqlSuger官方文档:http://www…
NBear是一个基于.Net 2.0.C#2.0开放全部源代码的的软件开发框架类库.NBear的设计目标是尽最大努力减少开发人员的工作量,最大程度提升开发效率,同时兼顾性能及可伸缩性. 一.新建项目并添加NBear所需要的动态库:NBear.Core.dll.NBear.Mapping.dll.NBearLite.dll(dll位置在现在的NBear的dist\...文件夹里) 二.生成NBear映射类文件,生成器在下载的NBear的dist\... 文件夹里,名称为:NBearLite.Que…
yii2 orwhere andwhere的复杂写法:https://www.codercto.com/a/6513.html $files = XXXX::find() ->andWhere(['<>', 'queue_name', '']) ->andWhere(['or', ['queue_status' => ''], [ 'and', ['queue_status' =>'error'], ['retry' => 0] ] ]) ->all();…
引言 在项目中也有用到过nhibernate但对nhibernate的认识,也存留在会用的阶段,从没深入的学习过,决定对nhibernate做一个系统的学习. ORM 对象-关系映射(OBJECT/RELATION MAPPING,简称ORM),是随着面向对象的软件开发方法发展而产生的.面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统.对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据…
综合类 微软企业库 微软官方出品,是为了协助开发商解决企业级应用开发过程中所面临的一系列共性的问题, 如安全(Security).日志(Logging).数据访问(Data Access).配置管理(Configuration Manage)等,并将这些广泛使用的应用程序块集成封装至一个叫企业库的程序包中 CommonLibrary.net 一个帮助类库,包含了ActiveRecord, Csv, Command Line Parsing, Configuration, Validation,…
上次用EF演示了数据库多对多关系的操作,这次我们还是引用上次的案例,来演示如何在C#当中使用NHibernate. 首先介绍一下NHibernate框架的来源.熟悉Java编程的读者肯定知道Hibernate这个ORM.NHibernate就来源于Java中著名的ORM框架—Hibernate,这点从名称当中就能够知道.目前NHibernate的最新版本是3.3.3,好像有一阵子没有update了,说明当前的版本也比较稳定了.具体的资料可以到官网查询:http://nhforge.org/. 1…
一.映射定义概括 1.1 映射定义(Mapping declaration) 对象和关系数据库之间的映射是用一个XML文档(XML document)来定义的.这个映射文档被设计为易读的,并且可以手工修改.映射语言是以对象为中心的, 意味着映射是按照持久化类的定义来创建的,而非表的定义. 让我们打开上节课的映射例子: Product.hbm.xml <? xml version="1.0" encoding="utf-8" ?> < hiberna…
[转][C#]常用开源项目 本文来自:http://www.cnblogs.com/sunxuchu/p/6047589.html Json.NET http://www.newtonsoft.com/json https://github.com/JamesNK/Newtonsoft.Json Json.NET是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Linq To JSON可以快速的读写Json,通过JsonSerialize…
成为了高工,只是完成体系的熟练,这个时候就要学会啃一些框架了... 常用Orm底层框架的熟悉: 1.轻量泛型的DBHelper,一般高工都自己写的出来的 2.EF-基于Linq的,好好用 3.KeelKit:如下说明 4.NHibernate Linq-自己查,感觉和EF差不多 5.SqlSmart:如下说明 6.Cooperator Framework:如下说明 7.Service Stack :完美对接SQLServer.Orcale.MySQL,完美对接Redis,Lambda的普遍应用…
Json.NET http://json.codeplex.com/ Json.NET是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象.让你轻松实现.Net中所有类型(对象,基本数据类型等)和Json的转换. Math.NET http://www.mathdotnet.com/ Math.NET的目标是为提供一款自身包含清晰框架的…
http://www.cnblogs.com/alex3714/articles/5512568.html 常用ORM操作 一.示例Models from django.db import models class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField() def __str__(self): # __unicode__ on Python 2 return s…
系列文章 [Nhibernate]体系结构 引言 在上篇文章学习了orm和nhibernate相关概念,这篇文章主要学习ISessionFactory如何配置. 因为NHibernate被设计为可以在许多不同环境下工作,所以它有很多配置参数.不过,大部分都已经有默认值了.NHibernate.Test.dll包含了一个示例的配置文件app.config,它演示了一些可变的参数. 可编程配置方式 NHibernate. Cfg.Configuration的一个实例代表了应用程序中所有的.Net类到…
目录 写在前面 nhibernate文档 搭建项目 映射文件 持久化类 辅助类 数据库设计与连接配置 测试 总结 写在前面 一年前刚来这家公司,发现项目中使用的ORM是Nhibernate,这个之前确实没接触过,EF多少在项目中用过,想着既然都是ORM,应该语法上都差不多.当时也就是硬着头皮上的,刚开始也只能通过模仿别人的代码,再加上自己的理解,一些增删改查的方法,确实也被自己给搞出来了,现在回头想想,在项目中,用到的那些方法基本上就一个样,很少有变化.除非有些业务逻辑非常强的,自己搞不定,问一…
葡萄牙的一位开发者 Ricardo Peres 最近发布了一篇文章,以看起来无偏见的形式对领先的两种 .NET ORM:NHibernate 和 Entity Framework 进行了比较. 我们建议考虑使用这两种框架的人都应该读下他的文章,NHibernate 和 Entity Framework 之间的区别,另外还将指出一些关键的区别. 从架构上看,NHibernate 基于 Java 的 Hibernate ORM. Ricardo 写道: 在 NHibernate 中,工作单元和配置项…
最近做项目,又用到了以前做过的ORM框架--NHibernate. 此次想要实现的目标: 1.简单SQL用NHibernate的Session的CRUD方法实现 2.复杂SQL用Native SQL实现 3.数据库可能有多个,且有可能是不同的数据库类型,如A系统用Oracle,B系统用MSSQL (第一点很简单,可以参照其他博客:本节主要记录第二点第三点,关于如何配置多数据库下次记录) 复杂SQL的实现,且针对不同数据库,那么需要加载不同的资源文件. 关于资源文件,请参考http://blog.…
Json.NET http://json.codeplex.com/ Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象.让你轻松实现.Net中所有类型(对象,基本数据类型 等)和Json的转换. Math.NET http://www.mathdotnet.com/ Math.NET的目标是为提供一款自身包含清晰框…
轻量级ORM框架QX_Frame.Bantina系列讲解(开源) 一.框架简介 http://www.cnblogs.com/qixiaoyizhan/p/7417467.html 二.框架使用方式介绍 http://www.cnblogs.com/qixiaoyizhan/p/7418058.html 三.框架性能对比 敬请期待 [前言] 上一节我们对Bantina ORM框架进行了简单的说明介绍,在这一节中,我们将对Bantina框架的使用方式进行说明. 下面我们对Bantina 1.0 使…
1.反射练习 import sys class Person(object): def __init__(self, name): self.name = name def eat(self, food): print("{} 在吃 {}".format(self.name, food)) def dream(self): print("{} 在做白日梦!".format(self.name)) s = "person" # 字符串首字母大写 s…
记录集 model的数据是通过数据集合的形式来使用的,定义在model里的函数执行时它们的self变量也是一个数据集合 class AModel(models.Model): _name = 'a.model' def a_method(self): # self can be anywhere between 0 records and all records in the database self.do_operation() def do_operation(self): print s…
Json.NET http://json.codeplex.com/ Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象.让你轻松实现.Net中所有类型(对象,基本数据类型等)和Json的转换. Math.NET http://www.mathdotnet.com/ Math.NET的目标是为提供一款自身包含清晰框架的…
ORM简介 ORM即Object Relational Mapping,全称对象关系映射.当我们需要对数据库进行操作时,势必需要通过连接数据.调用sql语句.执行sql语句等操作,ORM将数据库中的表,字段,行与我们面向对象编程的类及其方法,属性等一一对应,即将该部分操作封装起来,程序猿不需懂得sql语句即可完成对数据库的操作. Python中常用ORM框架 Django's ORM 优点: 易用,学习曲线短 和Django紧密集合,用Django时使用约定俗成的方法去操作数据库 缺点: 不好处…
In previous USING NHIBERNATE WITH SQLITE, we connect SQLITE with ORM framework NHibernate. One of the biggest advantage of ORM is that most code need not be changed when switching different DBMS. In this article, MySQL is used for DBMS. For the switc…
任务调度 Quartz.NET:Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允 许开发人员根据时间间隔(或天)来调度作业.它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联.整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业. 日志记录 NLog Log4Net IOC Ninject:轻量级ioc Castle: Autofac: ORM…
本文来自:http://www.cnblogs.com/sunxuchu/p/6047589.html 新增两个: 纸壳CMS http://www.zkea.net/zkeacms https://github.com/SeriaWei/ASP.NET-MVC-CMS Epplus https://github.com/JanKallman/EPPlus Json.NET http://www.newtonsoft.com/json https://github.com/JamesNK/New…