Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用LINQ将目录结构(存储在数据库中)输出为JSON消息?_C#_Linq_Webapi - Fatal编程技术网

C# 如何使用LINQ将目录结构(存储在数据库中)输出为JSON消息?

C# 如何使用LINQ将目录结构(存储在数据库中)输出为JSON消息?,c#,linq,webapi,C#,Linq,Webapi,我有一个存储在SQL Server数据库中的目录结构。因此,当客户端调用Web API时,它应该以JSON消息的形式返回结构 数据库表如下所示(这只是一个示例,其中的行比这多得多): 返回的JSON消息应如下所示: "structure": [ { "value": "Directory 1", "label": "Directory 1",

我有一个存储在SQL Server数据库中的目录结构。因此,当客户端调用Web API时,它应该以JSON消息的形式返回结构

数据库表如下所示(这只是一个示例,其中的行比这多得多):

返回的JSON消息应如下所示:

"structure": [
      {
        "value": "Directory 1",
        "label": "Directory 1",
        "children": [
          {
            "value": "Directory 1.01",
            "label": "Directory 1.01"
          },
          {
            "value": "Directory 1.02",
            "label": "Directory 1.02"
          }
        ]
      },
      {
        "value": "Directory 2",
        "label": "Directory 2",
        "children": [
          {
            "value": "Directory 2.01",
            "label": "Directory 2.01"
          }
        ]
      },
      {
        "value": "Directory 3",
        "label": "Directory 3",
        "children": [
          {
            "value": "Directory 3.01",
            "label": "Directory 3.01"
          }
        ]
      },
以下是一些补充说明:

  • 当RootID有一个值(与Id相同)并且ParentId为NULL时,它就是根目录(类似于目录1)
  • 父目录可以有多个级别的子目录(或子目录)。我的示例只显示了一个顶级目录下的一个子目录
我应该创建什么样的LINQ查询来获取所描述的JSON消息?不能让我的头围绕着这个


谢谢

它有点宽,不是吗?你想根据一些标准选择整棵树还是只选择叶子?问题是:如何将数据库读入相似项的集合,或者如何将相似项的集合转换为JSON格式的字符串?
"structure": [
      {
        "value": "Directory 1",
        "label": "Directory 1",
        "children": [
          {
            "value": "Directory 1.01",
            "label": "Directory 1.01"
          },
          {
            "value": "Directory 1.02",
            "label": "Directory 1.02"
          }
        ]
      },
      {
        "value": "Directory 2",
        "label": "Directory 2",
        "children": [
          {
            "value": "Directory 2.01",
            "label": "Directory 2.01"
          }
        ]
      },
      {
        "value": "Directory 3",
        "label": "Directory 3",
        "children": [
          {
            "value": "Directory 3.01",
            "label": "Directory 3.01"
          }
        ]
      },