使用NSun快速开发ORM在3.5中的便捷

 

2.0Hibernate 在对因表结构的实体类中会充斥外键的属性。比如说用户和岗位的关系可以对应的实体类会是下面这种情况:

public class Job

    {

        public int Id { get; set; }

        public string Name { get; set; }

    }

 

    public class User

    {

        public int Id { get; set; }

        public string Name { get; set; }

        public Job JobInfo { get; set; }

}

那么在读取user的时候会读取jobjobid hibernate会有延时加载机制,保证了不会有无用的数据读取。那么如果是普通的实体类的表现则会是。

public class User

    {

        public int Id { get; set; }

        public string Name { get; set; }

        public int JobId { get; set; }

}

如果这样的话,对外键job的关系只能通过id来体现查询需要另外的方式来进行。其实要说到3.5的扩展方法了。很多项目开发都用到了3层的概念。那么BLL的关系涉及的东西主要是业务。那么外键查询也放进去或者表现层会出现冗余的可能。那么我们用扩展方法来完善这一点。

    我们建立一个针对于user外键的扩展类:

    public static class UserExpand

    {

        public static Job Job(this User info)

        {

            return new Job(info.JobId);

        }

}

那么调用的体现会是如下:

  User u = new User();

  Job jobinfo = u.Job();

这样使用的话就不用考虑延时加载了。也会使程序不会产生很多冗余方法。

 

 

posted @ 2010-05-23 19:19  Dacey  Views(306)  Comments(1Edit  收藏  举报