我需要重新创建模型浏览器的结构,但是到目前为止,我还没有获得成功,我正在尝试加入父母和孩子一起在查看器中创建该结构。
我的要求之一是使用model.sdb数据库,因此无法在查看器中使用树结构。 (查看器API)或模型衍生API
因此,在SQL查询和linq表达式之间进行任何操作都可以解决我的问题。
谢谢!
var queryBranches = universe.Where(o => o.ObjectsEav.Any(eav => eav.Attribute.Name == "child" && eav.Attribute.Category == "__child__"));
var queryLeafs = universe.Where(o => o.ObjectsEav.Any(eav => eav.Attribute.Name == "parent" && eav.Attribute.Category == "__parent__")).Except(queryBranches);
//Get Structure
foreach (var leaf in leafs)
{
var leafAttr = leaf.ObjectsEav.FirstOrDefault(eav => eav.Attribute.Name == "parent");
if (leafAttr == null)
leafAttr = leaf.ObjectsEav.FirstOrDefault(eav => eav.Attribute.Name == "parent");
...
}
我的要求之一是使用model.sdb数据库,因此无法在查看器中使用树结构。 (查看器API)或模型衍生API 。
答案 0 :(得分:1)
您可以在client browser或backend中查询属性db。
或者尝试使用model.getPropertyDb().executeUserFunction():Promise
对PropertyDatabase实例在工作线程中执行功能:
executeUserFunction(function(pdb) {
var dbId = 1;
pdb.enumObjectProperties(dbId, function(propId, valueId) {
// do stuff
});
})