问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

net平台下orm技术有哪些,详细介绍

发布网友 发布时间:2022-04-07 18:51

我来回答

1个回答

热心网友 时间:2022-04-07 20:21

在.NET平台下,关于数据持久层框架非常多,本文主要对如下几种做简要的介绍并推荐一些学习的资源:

1.NHibernate

2.NBear

3.Castle ActiveRecord

4.iBATIS.NET

5.DAAB

附加介绍:DLinq

一.NHibernate

提起NHibernate,相信大家都不陌生,NHibernate来源于非常优秀的基于Java的Hibernate关系型持久化工具,它从数据库底层来持久化.Net对象到关系型数据库,NHibernate为我们完成这一切,而不用自己写SQL语句去操作数据库对象,所写的代码仅仅和对象关联,NHibernat自动产生SQL语句,并确保对象提交到正确的表和字段中去.大量减少开发时人工使用SQL和ADO.NET处理数据的时间. NHibernate可以帮助消除或者包装那些针对特定数据库的SQL代码,并且把结果集从表格的表示形式转换到一系列的对象去。NHibernate采用XML文件配置的方式,每一个实体类都会对应一个映射文件,如下面的例子:

public class User
{
public User()

{

}

private string id;

private string userName;

private string password;

private string emailAddress;

private DateTime lastLogon;

public string Id

{
get { return id; }

set { id = value; }
}

public string UserName

{
get { return userName; }

set { userName = value; }
}

public string Password

{
get { return password; }

set { password = value; }
}

public string EmailAddress

{
get { return emailAddress; }

set { emailAddress = value; }
}

public DateTime LastLogon

{
get { return lastLogon; }

set { lastLogon = value; }
}
}
它对应的.hbm.xml文件如下:
<?xml version="1.0" encoding="utf-8" ?>

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">

<class name="NHibernateWebDemo.Model.User, NHibernateWebDemo.Model" table="users">

<id name="Id" column="LogonId" type="String" length="20">

<generator class="assigned" />

</id>

<property name="UserName" column= "Name" type="String" length="40"/>

<property name="Password" type="String" length="20"/>

<property name="EmailAddress" type="String" length="40"/>

<property name="LastLogon" type="DateTime"/>

</class>

</hibernate-mapping>

官方主页:http://www.nhibernate.org/

学习资源

园子里首推DDL的Blog:http://www.cnblogs.com/renrenqq/,有NHibernate文档的中文翻译以及DLL写的一些非常优秀的NHibernate文章。

大名鼎鼎的张老三:http://blog.csdn.net/billy_zh/category/22383.aspx

Aero的Nhibernate学习手记系列:http://www.cnblogs.com/chwkai/category/32514.html

无心之柳的Blog也非常值得推荐:http://www.cnblogs.com/9527/

博客园O/R Mapping团队:http://www.cnblogs.com/team/ORMapping.html

二.NBear

园子里Teddy开发的NBear大家都非常熟悉,现在已经发布了3.0正式版。NBear包含的组件不仅仅是数据持久层,还包含了IOC,分布式组件和Web组件。看一下Teddy对于NBear的介绍:

NBear的核心包括一个泛型、强类型的的ORM数据持久化接口、一组相关的Entity相关组件、高性能分布式组件、Web组件,因此:

1、NBear最适合开发各类基于ASP.NET 2.0,对性能要求较高的Web程序。NBear.Web组件提供了许多加速Web开发的组件,将使您基于标准 ASP.NET方式的开发效率大大提高;同时,简单易用、性能突出的泛型持久化支持,则将使您能够将更多注意力集中到业务开发,同时也不会有传统ORM持久化框架的性能问题和繁琐配置需要(NBear几乎不需手动配置,性能则接近DAAB)。

2、基于MQ和.Net Remoting的高性能分布式组件,将使您开发和维护分布式程序更加容易。一个基于NBear.IoC模块的开发的应用程序甚至无需重新编译就能部属为真正的负载均衡的分布式程序。

3、对于桌面应用程序,NBear同样是一个几乎没有什么学习曲线(多少人会为写一个小小的日历程序而仔细研究透彻Hibernate的参考手册?)、实用高效的数据持久化方案。

4、随着NBearV3带来的全面的ORM支持、更详细的文档和教程,和全面的代码生成工具,NBear也已经可以被用于企业级程序开发。

官方首页:http://teddyma.cnblogs.com/articles/Ilungasoft_Framework.html

学习资源

学习资源当然首推Teddy的个人Blog:http://www.cnblogs.com/teddyma/

博客园NB团队:http://nbteam.cnblogs.com/

三.Castle ActiveRecord

ActiveRecord是Castle中的一个子项目,现在的版本是RC1。它同样是一个非常优秀的持久层框架,在底层封装了NHibernate,改用Attribute来代替配置文件,这样就不用再像NHibernate那样去编写复杂的配置文件。如下代码片断所示:

[ActiveRecord("Users")]
public class User : ActiveRecordBase

{
private int _id;

private string _name;

private string _password;

private string _emailAddress;

private DateTime _lastLogon;

[PrimaryKey(PrimaryKeyType.Identity, "LogonID")]

public int Id

{
get { return _id; }

set { _id = value; }
}

[Property("LogonName")]

public string Name

{
get { return _name; }

set { _name = value; }
}

[Property("Password")]

public string Password

{
get { return _password; }

set { _password = value; }
}

[Property("EmailAddress")]

public string Address

{
get { return _emailAddress; }

set { _emailAddress = value; }
}

[Property("LastLogon")]

public DateTime LastLogon

{
get { return _lastLogon; }

set { _lastLogon = value; }
}

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
长春小飞没有车没有房 碳钢的多久生锈 碳钢多久会生锈 碳钢多长时间会开始生锈 碳钢和铝哪个容易生锈 梦见天宫图是什么意思 光遇2023好友树解锁图鉴 光遇二级节点多少个 ...火柴小女孩》《词语手册》里有很多词语的意思的,求告知 暖融融解释 领淘通淘客助手这个软件怎么样? never say never 困兽之斗 什么解释??? 求一些成语的意思(请注意看要求) 困斗成语 请问什么叫困兽斗? 想给男朋友买个皮带,什么牌子的皮带好一些的呢? 这个在表格中怎么添加这样的颜色,急急急,谢谢各位大佬 国家的崛起到底有几个版本 国家的崛起有几个版本? 豆腐皮的做法,自制绿豆芽拌豆腐皮怎么做好 豆腐皮的做法多种多样,那豆腐皮怎么做才好吃? 怎么制作豆腐皮的做法大全图解 豆腐皮这样做才好吃,你做对了吗 想学习豆腐皮制作方法,大家有知道在哪学吗 利源精制属于a股还是b股 股票利源精制多空对比 利源精制的股票现在可以入手么? 利源精制这股票要清仓还是留 利源精制七日能否复牌 利源精制属于创业板吗 利源精制股票受人民币贬值影响吗 把老虎困在笼子里斗是什么成语? 成语大全 四字成语什么兽什么斗 困什么之兽的成语 困兽的成语 成语困什么之什么 成语 困()之() 摩托车链条怎么一半松一半紧怎么回事 摩托车链条调节后为什么会有的地方紧有的地方松,是怎么回事? 医生..我耳朵里面长了个红痘痘.只要碰到就会痛.是什么原因 摩托车行走链条怎么有松有紧?行走起来抖动的很? 耳朵周围长痘痘什么原因 耳朵里边长了个痘痘是什么原因造成的? 摩托车链子和链盘都是新换的为什么链条有松有紧 耳朵长痘痘是什么原因呢? 摩托车链条一段松一段紧,高手师傅进来... 耳朵里面长了个痘痘,周围都红了,特别痒是什么原因 我耳朵深处长个红色的痘痘,发亮,有胀痛感,是怎么回事啊?? 耳朵内长这样的痘痘是什么原因? switch同机器不同账号转移怪猎存档 手机有什么地图能看卫星地图?山区的地图