Subsonic 亚音速和树表结构
我必须在数据库中存储一个树状结构(比如文件夹)。我选择的模型非常简单:这个表有一个FolderId(PK,int,identity)、一些随机属性和一个可空的ParentId(表FK到FolderId,int,nullable) 一切都很好。我正在使用亚音速的ActiveRecord模板。有没有办法让我生成的文件夹类具有父/子属性,而不是简单的“文件夹”Subsonic 亚音速和树表结构,subsonic,tree,Subsonic,Tree,我必须在数据库中存储一个树状结构(比如文件夹)。我选择的模型非常简单:这个表有一个FolderId(PK,int,identity)、一些随机属性和一个可空的ParentId(表FK到FolderId,int,nullable) 一切都很好。我正在使用亚音速的ActiveRecord模板。有没有办法让我生成的文件夹类具有父/子属性,而不是简单的“文件夹” 我怀疑我必须编辑模板,可能是ActiveRecord.tt。如果是这样,有人能给我指出一个起点吗?也许有人做过类似的事情?我想现在已经太晚了,
我怀疑我必须编辑模板,可能是ActiveRecord.tt。如果是这样,有人能给我指出一个起点吗?也许有人做过类似的事情?我想现在已经太晚了,看不到显而易见的事情了:我可以简单地按照
partial class Folder
{
public Folder Parent
{
get {
if (_ParentId.HasValue)
{
var repo = ACME.Folder.GetRepo();
return
(from items in repo.GetAll()
where _ParentId.Value == items._FolderId
select items).First();
}
else
return null;
}
}
public IQueryable<Folder> Children
{
get {
var repo = ACME.Folder.GetRepo();
return from items in repo.GetAll()
where _FolderId == items.ParentId
select items;
}
}
}
部分类文件夹
{
公用文件夹父文件夹
{
得到{
if(_ParentId.HasValue)
{
var repo=ACME.Folder.GetRepo();
返回
(来自repo.GetAll()中的项目)
其中_ParentId.Value==items.\u FolderId
选择项目);
}
其他的
返回null;
}
}
公共教育和可教育儿童
{
得到{
var repo=ACME.Folder.GetRepo();
从repo.GetAll()中的项目返回
其中_FolderId==items.ParentId
选择项目;
}
}
}
所有生成的类都是部分类,因此您可以执行上面所做的操作,但只需为其创建一个部分类,使其全部位于“同一”类中