如何为父母和孩子创建面包屑?

时间:2019-04-04 02:00:37

标签: c# linq

我有一个这样的模型:

public class MyEntity
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int? ParentId { get; set; }
    public string FullBreadcrumb { get; set; }
}

我在How to create a breadcrumb for categories and subcategories using linq上看到

您可以使用类似这样的内容:

public IEnumerable<string> GetBreadcrumbs(IEnumerable<MyEntity> entities, int? parentId = null)
{
    var parents = entities.Where(x => x.ParentId == parentId);
    var children = entities.Where(x => x.ParentId != parentId);

    foreach (var parent in parents)
    {
        yield return parent.Name;
        foreach (var trail in GetBreadcrumbs(children, parent.Id))
            yield return (parent.Name + " > " + trail);
    }
}

实际上工作得很好,但我需要的是返回IEnumerable字符串而不是返回IEnumerable字符串。

可能只是已经晚了,我很累,但是我很难让它开始工作。我对收益也不熟悉。任何帮助都非常有帮助。

1 个答案:

答案 0 :(得分:0)

我实际上可以自己解决这个问题,但是如果其他人想知道我是这样做的:

const upload = multer({
  storage: multerS3({
    s3,
    bucket: '*bucketname*',
    acl: 'public-read',
    contentType: multerS3.AUTO_CONTENT_TYPE,
    metadata: function (req, file, cb) {
        cb(null, { fieldName: file.fieldName });
    },
    key: function (req, file, cb) {
        cb(null, Date.now().toString())
    }
  })
})

router.post('/api/v1/upload', upload.array('image'), function (req, res, next) {
    res.redirect("/admin.html");
    return res.json({ 'imageUrl': req.files.location });
});