使用NSun快速开发ORM在3.5中的便捷
在2.0或Hibernate 中 在对因表结构的实体类中会充斥外键的属性。比如说用户和岗位的关系可以对应的实体类会是下面这种情况:
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的时候会读取job的jobid 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();
这样使用的话就不用考虑延时加载了。也会使程序不会产生很多冗余方法。