因为我的做的一个项目是基于Category分类来进行导航的, 查看ASP.NET 站点导航概述 和 如何:实现 ASP.NET 站点地图提供程序 两篇参考文章, 也模仿地写了一个SiteMapProvider程序....
各个 ASP.NET 站点导航组件之间的关系图
![自定义SiteMapProvider [转] 自定义SiteMapProvider [转]](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNEb3ZMMjF6Wkc0eUxtMXBZM0p2YzI5bWRDNWpiMjB2ZW1ndFkyNHZiR2xpY21GeWVTOWxORFk0YUhocmVTNU1iMk5oYkY4NU1EWXhORFV3TWw5emFYUmxibUYyWTJ4aGMzTmxjM0psYkdGMGFXOXVjMmhwY0NoNmFDMWpiaXhXVXk0NE1Da3VaMmxt)
而我们这次就是编程图中的"自定义站点地图提供程序"....
我的DAL层是基于NBear的....
Category实体定义如下:
程序代码如下:
returnNode;
}
}
}
此SiteMapProvider只适合我的项目, 在此只是作个示例展示如何扩展StaticSiteMapProvider而已....
各个 ASP.NET 站点导航组件之间的关系图
而我们这次就是编程图中的"自定义站点地图提供程序"....
我的DAL层是基于NBear的....
Category实体定义如下:
[AutoPreLoad]
public interface Category : Entity
{
[PrimaryKey]
int ID { get; }
[SqlType("nvarchar(50)")]
string Title { get; set; }
/// <summary>
/// 排序位置
/// </summary>
int Sort { get;set;}
[FkReverseQuery(LazyLoad = true)]
[MappingName("ParentID")]
Category Parent { get;set;}
[FkQuery("Parent", LazyLoad = false, OrderBy= "Sort")]
[SerializationIgnore]
Category[] Children { get; set; }
[FkQuery("Category", OrderBy = "{ID} DESC", LazyLoad = true)]
Article[] Articles { get;set;}
}
public interface Category : Entity
{
[PrimaryKey]
int ID { get; }
[SqlType("nvarchar(50)")]
string Title { get; set; }
/// <summary>
/// 排序位置
/// </summary>
int Sort { get;set;}
[FkReverseQuery(LazyLoad = true)]
[MappingName("ParentID")]
Category Parent { get;set;}
[FkQuery("Parent", LazyLoad = false, OrderBy= "Sort")]
[SerializationIgnore]
Category[] Children { get; set; }
[FkQuery("Category", OrderBy = "{ID} DESC", LazyLoad = true)]
Article[] Articles { get;set;}
}
程序代码如下:
}
}
}
此SiteMapProvider只适合我的项目, 在此只是作个示例展示如何扩展StaticSiteMapProvider而已....