当前位置:编程学习 > C#/ASP.NET >>

NHibernate编程

NHibernate在编程开发中有什么好处。 --------------------编程问答-------------------- 对象化查询,可以避免写Sql语句的时候出错。
在编译器就可以发现错误。
hibernate关注的是对象,而写sql是面向关系的。用它就更加OO了


这个是百度上面的原话

没用过不懂...
--------------------编程问答--------------------

真逗 --------------------编程问答-------------------- 如果觉得NHibernate太复杂不容易掌握,可以试试PDF.NET数据开发框架,它具有Hibernate和iBatis的一些重要特点,非常轻量级别,因此容易掌握运行效率高。 --------------------编程问答-------------------- Nhibernate 是从 Hibernate (Java平台)移植过来的 ORM 框架。

ORM框架是为同时使用关系型数据库和面向对象的领域建模的开发模式而产生的。

--------------------编程问答-------------------- 可以不用写SQL~ 更专注业务的实现 不过我在用iBatis~ --------------------编程问答-------------------- NHibernate是使用ORM框架的,其意义在把业务逻辑与数据存贮彻底分离。
在以往用ADO.NET的时候,大家总是从数据库开发做起,一般每个表就会有一个对应的Model。但用到NHibernate的时候就可以直接从业务逻辑层开发入手,把数据层设计压后。这种开发思维特别适合用于DDD领域驱动设计的开发方式。
所以微软推出的LINQ与NHibernate就是有异曲同工之妙。 --------------------编程问答-------------------- 那个cnblogs上有nhibernate的文章。 --------------------编程问答--------------------
引用 6 楼 leslies2 的回复:
NHibernate是使用ORM框架的,其意义在把业务逻辑与数据存贮彻底分离。
在以往用ADO.NET的时候,大家总是从数据库开发做起,一般每个表就会有一个对应的Model。但用到NHibernate的时候就可以直接从业务逻辑层开发入手,把数据层设计压后。这种开发思维特别适合用于DDD领域驱动设计的开发方式。
所以微软推出的LINQ与NHibernate就是有异曲同工之妙。

LINQ和NHibernate根本没有任何可比性,是完全无关的两个东西。 --------------------编程问答-------------------- ORM.比较方便。

刚刚写了个方法

 public IList<Skill> GetSkillsLikeName(string name, int parentLoadDepth)
        {
            DetachedCriteria criteria = 
                DetachedCriteria
                .For<Skill>()
                .Add(Restrictions.InsensitiveLike("Name", name, MatchMode.Anywhere));
            delegate(ISession session)
            {
                var result = criteria
                    .GetExecutableCriteria(session)
                    .List<Skill>();

                foreach (Skill rootSkill in result)
                {
                    LoadParentSkill(rootSkill, loadDepth);
                }

                return result;
            };
            var executedResult = this.HibernateTemplate.Execute(handler);

            return executedResult;
        }


Restrictions.InsensitiveLike("Name", name, MatchMode.Anywhere)

一个条件实现SQL 的 like查询 MatchMode.Anywhere自带百分号。

呵呵 就是SQL拓展不是很灵活  如果需要灵活的可以用iBatis...

另外去博客园里有个李勇京的专题。比较不错介绍Nhibernate
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,