首页 > Web开发 > 详细

Farseer.net轻量级开源框架 入门篇:分类逻辑层

时间:2014-11-05 16:56:53      阅读:260      评论:0      收藏:0      [点我收藏+]
导航

目   录:Farseer.net轻量级开源框架 目录

上一篇:Farseer.net轻量级开源框架 入门篇: 缓存逻辑层

下一篇:Farseer.net轻量级开源框架 入门篇: 添加数据详解

分类逻辑层

分类逻辑层,主要用在一些需要支持无限递归的树数据。树数据是:必须有一个根节点,根节点有无限个子节点,没有节点限制。比如我们常用的有:(频道、xxx分类)

这里与BaseCacheModel的操作是完全一致。唯一不同的是,BaseCateModel是继承自ModelCateInfo。这个类提供了默认的几个字段:

 1     /// <summary>
 2     /// 分类基类
 3     /// </summary>
 4     public class ModelCateInfo : ModelInfo
 5     {
 6         /// <summary>
 7         ///     所属ID
 8         /// </summary>
 9         [Display(Name = "所属分类")]
10         public virtual int? ParentID { get; set; }
11 
12         /// <summary>
13         ///     标题
14         /// </summary>
15         [Display(Name = "标题"), StringLength(50), Required]
16         public virtual string Caption { get; set; }
17 
18         /// <summary>
19         ///     排序
20         /// </summary>
21         [Display(Name = "排序")]
22         public virtual int? Sort { get; set; }
23     }

首先,我们先创建一个实体。(数据库就不放上来了)

ChlDB实体

 它继承了BaseCateModel基类。

1 namespace FS.Model.Web
2 {
3     /// <summary>
4     /// 频道
5     /// </summary>
6     [DB(Name = "Web_ChlDB")]
7     public class ChlDB : BaseCateModel<ChlDB> { }
8 }

 看到这里,大家是否觉得奇怪?怎么没有属性呢?因为我们继承了ModelCateInfo,而ModelCateInfo又继承了ModelInfo。所以ID、Caption、Sort、ParentID 都是默认支持的。因为这个类是“空”的属性。

当然。你会说,你的数据库字段的属性名不叫这个啊。别忘了。类的属性与数据库的字段的映射是通过特性来建立的。也就是说,不管你的类属性名称是什么,只要特性申明中,对应好字段名称就可以了。

并且这些父类的属性都是可重写的,因此根据你的项目选择性进行重写即可。

BaseCateModel与BaseCacheModel的区别

BaseCacheModel有的功能,BaseCateModel都有

BaseCateModel在这个基础下扩展了一系列针对“树”的操作。(扩展方法的命名空间:using FS.Extend)

扩展方法提供了一系列上下级节点的搜索方法。比如查询父级、顶级、下级等等操作。当然里面的方法有很多。具体大家在:FS.Extend.ListExtend 类中查看。

它是在ChlDB.Cache()下的扩展,如图:

bubuko.com,布布扣

总结

这篇基本上都介绍了BaseCateModel的使用。

相对于BaseCacheModel,增加了额外对“树”数据结构的操作。

导航

目   录:Farseer.net轻量级开源框架 目录

上一篇:Farseer.net轻量级开源框架 入门篇: 缓存逻辑层

下一篇:Farseer.net轻量级开源框架 入门篇: 添加数据详解

Farseer.net轻量级开源框架 入门篇:分类逻辑层

原文:http://www.cnblogs.com/steden/p/4075756.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!