Поделиться через


Команда update

Обновите существующее определение сущности в файле конфигурации построителя данных. Используйте эту команду для настройки исходных метаданных, разрешений, экспозиции (REST/GraphQL), политик, кэширования, связей, сопоставлений и описательных метаданных для существующей сущности.

Подсказка

Используется dab add для создания новых сущностей и dab update их развития. Управление метаданными поля, использование --fields.name с --fields.alias, --fields.descriptionа также --fields.primary-key.

Синтаксис

dab update <entity-name> [options]

Краткий обзор

Вариант Сводка
<entity-name> Обязательный позиционный аргумент. Имя логической сущности.
-s, --source Имя исходной таблицы, представления или хранимой процедуры.
-m, --map Сопоставления между полями базы данных и именами, предоставляемыми.
--permissions Роль и действия в role:actions формате.
--description Замените описание сущности.
-c, --config Путь к файлу конфигурации. Разрешение по умолчанию применяется, если опущен.
--help Отображение экрана справки.
--version Отображение сведений о версии.

Кэш

Вариант Сводка
--cache.enabled Включение или отключение кэширования сущностей.
--cache.ttl Кэшируйте время в секундах.

Fields

Вариант Сводка
--fields.exclude Разделенный запятыми список исключенных полей.
--fields.include Разделенный запятыми список включенных полей (* = все).

Метаданные полей

Вариант Сводка
--fields.name Имя столбца базы данных для описания.
--fields.alias Псевдоним поля.
--fields.description Описание поля.
--fields.primary-key Задайте это поле в качестве первичного ключа.

GraphQL

Вариант Сводка
--graphql Экспозиция GraphQL: false, true, singularили singular:plural.
--graphql.operation Хранимые процедуры: query или mutation (мутация по умолчанию).

Разрешения и политики

Вариант Сводка
--permissions role:actions для одной роли. Запустите несколько раз для нескольких ролей.
--policy-database Фильтр в стиле OData, внедренный в запрос базы данных.
--policy-request Фильтр запросов predatabase.

Отношения

Вариант Сводка
--relationship Имя связи. Используйте с параметрами связи.
--cardinality Кратность связей: one или many.
--target.entity Имя целевой сущности.
--linking.object Связывание объекта для "многие ко многим".
--linking.source.fields Связывание полей объектов, указывающих на источник.
--linking.target.fields Связывание полей объектов, указывающих на целевой объект.
--relationship.fields Сопоставления полей для прямых связей.

REST

Вариант Сводка
--rest Экспозиция REST: false, trueили пользовательский путь.
--rest.methods Хранимые процедуры только. Замените разрешенные HTTP-команды.

Сопоставления

Вариант Сводка
-m, --map Сопоставления между полями базы данных и именами, предоставляемыми.

MCP

Вариант Сводка
--mcp.dml-tools Включите или отключите средства DML MCP для этой сущности.
--mcp.custom-tool Включите настраиваемое средство MCP (только хранимые процедуры).

Исходный материал

Вариант Сводка
-s, --source Имя базового объекта базы данных.
--source.type Тип источника: table, viewили stored-procedure.
--source.params Значения параметров по умолчанию для хранимых процедур.
--source.key-fields Поля первичного ключа для представлений или таблиц.

Параметры (хранимые процедуры)

Вариант Сводка
--parameters.name Разделенный запятыми список имен параметров.
--parameters.description Разделенный запятыми список описаний параметров.
--parameters.required Разделенный запятыми список обязательных флагов.
--parameters.default Разделенный запятыми список значений по умолчанию.

--cache.enabled

Включение или отключение кэширования для этой сущности.

Example

dab update \
  Book \
  --cache.enabled true

Результирующая конфигурация

{
  "entities": {
    "Book": {
      "cache": {}
    }
  }
}

Замечание

Если кэширование включено (по умолчанию), интерфейс командной строки записывает пустой cache объект. Свойство "enabled" отображается только явным образом, если задано falseзначение .

--cache.ttl

Задайте время жизни кэша в секундах. Действует только в том случае, если кэширование включено.

Example

dab update \
  Book \
  --cache.ttl 600

Результирующая конфигурация

{
  "entities": {
    "Book": {
      "cache": {
        "ttl-seconds": 600
      }
    }
  }
}

Замечание

Предоставление TTL (время в реальном времени) при отключении кэша не влияет, пока кэширование не включено.

--description

Замените описание сущности.

Замечание

Этот параметр доступен в интерфейсе командной 2.0.0-rc строки. Построитель данных 2.0 в настоящее время находится в предварительной версии. Установите с dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prereleaseпомощью .

Example

dab update \
  Book \
  --description "Updated description"

Результирующая конфигурация

{
  "entities": {
    "Book": {
      "description": "Updated description"
    }
  }
}

--fields.exclude

Разделенный запятыми список полей, которые необходимо исключить.

Example

dab update \
  Book \
  --permissions "anonymous:read" \
  --fields.exclude "internal_flag,secret_note"

Результирующая конфигурация

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "fields": {
                "exclude": [ "internal_flag", "secret_note" ]
              }
            }
          ]
        }
      ]
    }
  }
}

--fields.include

Разделенный запятыми список полей для включения. * включает все поля. Заменяет существующий список включения.

Example

dab update \
  Book \
  --permissions "anonymous:read" \
  --fields.include "id,title,author"

Результирующая конфигурация

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "fields": {
                "exclude": [],
                "include": [ "id", "title", "author" ]
              }
            }
          ]
        }
      ]
    }
  }
}

--graphql

Управление экспозицией GraphQL.

Example

dab update \
  Book \
  --graphql book:books

Результирующая конфигурация

{
  "entities": {
    "Book": {
      "graphql": {
        "enabled": true,
        "type": {
          "singular": "book",
          "plural": "books"
        }
      }
    }
  }
}

--graphql.operation

Хранимые процедуры только. Задает тип операции. По умолчанию — mutation.

Example

dab update \
  RunReport \
  --graphql.operation query

Результирующая конфигурация

{
  "entities": {
    "RunReport": {
      "graphql": {
        "operation": "query"
      }
    }
  }
}

Замечание

Предоставление --graphql.operation таблиц или представлений игнорируется.

--permissions

Добавляет или обновляет разрешения для одной роли и ее действий.

Для добавления нескольких ролей можно выполнять dab update несколько раз (один раз на роль).

Example

dab update \
  Book \
  --permissions "anonymous:read"

dab update \
  Book \
  --permissions "authenticated:create,read,update"

Результирующая конфигурация

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read"
            }
          ]
        },
        {
          "role": "authenticated",
          "actions": [
            { "action": "create" },
            { "action": "read" },
            { "action": "update" }
          ]
        }
      ]
    }
  }
}

Замечание

Если указанная роль уже существует, ее действия обновляются; в противном случае будет добавлена роль.

--policy-database

Фильтр в стиле OData, добавленный к запросу к базе данных.

Example

dab update \
  Book \
  --permissions "anonymous:read" \
  --policy-database "region eq 'US'"

Результирующая конфигурация

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "policy": {
                "database": "region eq 'US'"
              }
            }
          ]
        }
      ]
    }
  }
}

--policy-request

Политика уровня запроса вычисляется перед попаданием в базу данных.

Example

dab update \
  Book \
  --permissions "anonymous:read" \
  --policy-request "@claims.role == 'admin'"

Результирующая конфигурация

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "policy": {
                "request": "@claims.role == 'admin'"
              }
            }
          ]
        }
      ]
    }
  }
}

--relationship

Определение или обновление связи. Используйте с другими параметрами связи.

Example

dab update \
  User \
  --relationship profile \
  --target.entity Profile \
  --cardinality one \
  --relationship.fields "id:user_id"

Результирующая конфигурация

{
  "entities": {
    "User": {
      "relationships": {
        "profile": {
          "cardinality": "one",
          "target.entity": "Profile",
          "source.fields": [ "id" ],
          "target.fields": [ "user_id" ],
          "linking.source.fields": [],
          "linking.target.fields": []
        }
      }
    }
  }
}

--cardinality

Кратность для связи. Использовать с --relationship.

Example

dab update \
  User \
  --relationship profile \
  --target.entity Profile \
  --cardinality one \
  --relationship.fields "id:user_id"

--target.entity

Имя целевой сущности для связи. Использовать с --relationship.

Example

dab update \
  User \
  --relationship profile \
  --target.entity Profile \
  --cardinality one \
  --relationship.fields "id:user_id"

--linking.object

Только многие ко многим. Имя объекта базы данных, используемого в качестве объекта связывания.

Example

dab update \
  Book \
  --relationship books_authors \
  --target.entity Author \
  --cardinality many \
  --relationship.fields "id:id" \
  --linking.object dbo.books_authors \
  --linking.source.fields book_id \
  --linking.target.fields author_id

--linking.source.fields

Только многие ко многим. Разделенный запятыми список связывания полей объектов, указывающих на исходную сущность.

Example

dab update \
  Book \
  --relationship books_authors \
  --target.entity Author \
  --cardinality many \
  --relationship.fields "id:id" \
  --linking.object dbo.books_authors \
  --linking.source.fields book_id \
  --linking.target.fields author_id

--linking.target.fields

Только многие ко многим. Разделенный запятыми список связывания полей объектов, указывающих на целевую сущность.

Example

dab update \
  Book \
  --relationship books_authors \
  --target.entity Author \
  --cardinality many \
  --relationship.fields "id:id" \
  --linking.object dbo.books_authors \
  --linking.source.fields book_id \
  --linking.target.fields author_id

--relationship.fields

Сопоставления полей с разделием двоеточия для прямых связей.

Значение --relationship.fields — это разделенный запятыми список sourceField:targetField пар.

Example

dab update \
  User \
  --relationship profile \
  --target.entity Profile \
  --cardinality one \
  --relationship.fields "id:user_id"

Результирующая конфигурация

{
  "entities": {
    "User": {
      "relationships": {
        "profile": {
          "cardinality": "one",
          "target.entity": "Profile",
          "source.fields": [ "id" ],
          "target.fields": [ "user_id" ],
          "linking.source.fields": [],
          "linking.target.fields": []
        }
      }
    }
  }
}

--rest

Управление экспозицией REST.

Example

dab update \
  Book \
  --rest BooksApi

Результирующая конфигурация

{
  "entities": {
    "Book": {
      "rest": {
        "enabled": true,
        "path": "/BooksApi"
      }
    }
  }
}

--rest.methods

Хранимые процедуры только. Замените разрешенные методы HTTP. По умолчанию используется POST.

Example

dab update \
  RunReport \
  --rest true \
  --rest.methods GET,POST

Результирующая конфигурация

{
  "entities": {
    "RunReport": {
      "rest": {
        "enabled": true,
        "methods": [ "get", "post" ]
      }
    }
  }
}

Замечание

Предоставление --rest.methods , пока REST отключено, не имеет никакого эффекта.

-s, --source

Обновите базовый объект базы данных.

Example

dab update \
  Book \
  --source dbo.Books

Результирующая конфигурация

{
  "entities": {
    "Book": {
      "source": {
        "object": "dbo.Books",
        "type": "table"
      }
    }
  }
}

--source.type

Измените тип исходного объекта.

Замечание

Требуются --source.key-fieldsпредставления. Изменение на без указания полей ключей приводит к view ошибке.

Example

dab update \
  Book \
  --source.type view \
  --source.key-fields "id"

Результирующая конфигурация

{
  "entities": {
    "Book": {
      "source": {
        "type": "view",
        "object": "Book"
      },
      "fields": [
        {
          "name": "id",
          "primary-key": true
        }
      ]
    }
  }
}

--source.params

Хранимые процедуры только. Значения параметров по умолчанию в виде name:value пар.

Example

dab update \
  RunReport \
  --source.params "startDate:2024-01-01,endDate:2024-12-31"

Результирующая конфигурация

{
  "entities": {
    "RunReport": {
      "source": {
        "type": "stored-procedure",
        "parameters": [
          {
            "name": "startDate",
            "required": false,
            "default": "2024-01-01"
          },
          {
            "name": "endDate",
            "required": false,
            "default": "2024-12-31"
          }
        ]
      }
    }
  }
}

--source.key-fields

Укажите поля первичного ключа для представлений или таблиц без вывода ключа.

Example

dab update \
  Book \
  --source.type view \
  --source.key-fields "id"

Результирующая конфигурация

{
  "entities": {
    "Book": {
      "source": {
        "type": "view",
        "object": "Book"
      },
      "fields": [
        {
          "name": "id",
          "primary-key": true
        }
      ]
    }
  }
}

Замечание

Представления всегда требуют ключевых полей. Параметр --source.key-fields добавляет записи в fields массив с "primary-key": true.

-m, --map

Укажите сопоставления между именами столбцов базы данных и именами полей REST/GraphQL.

Example

dab update \
  Book \
  --map "id:bookId,title:bookTitle"

Результирующая конфигурация

{
  "entities": {
    "Book": {
      "fields": [
        {
          "name": "id",
          "alias": "bookId",
          "primary-key": false
        },
        {
          "name": "title",
          "alias": "bookTitle",
          "primary-key": false
        }
      ]
    }
  }
}

Замечание

Параметр --map создает записи в массиве fields с набором alias свойств.

--parameters.name

Хранимые процедуры только. Разделенный запятыми список имен параметров.

Замечание

Этот параметр доступен в интерфейсе командной 2.0.0-rc строки. Построитель данных 2.0 в настоящее время находится в предварительной версии. Установите с dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prereleaseпомощью .

Подсказка

Чтобы определить параметры хранимой процедуры, используйте --parameters.name с --parameters.description, --parameters.requiredа также --parameters.default.

Example

dab update \
  GetOrdersByDateRange \
  --parameters.name "StartDate,EndDate" \
  --parameters.required "true,true" \
  --parameters.description "Beginning of date range,End of date range"

Результирующая конфигурация

{
  "entities": {
    "GetOrdersByDateRange": {
      "source": {
        "parameters": [
          {
            "name": "StartDate",
            "description": "Beginning of date range",
            "required": true
          },
          {
            "name": "EndDate",
            "description": "End of date range",
            "required": true
          }
        ]
      }
    }
  }
}

--parameters.description

Хранимые процедуры только. Разделенный запятыми список описаний параметров, выровненных по значению --parameters.name.

Замечание

Этот параметр доступен в интерфейсе командной 2.0.0-rc строки. Построитель данных 2.0 в настоящее время находится в предварительной версии. Установите с dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prereleaseпомощью .

Example

dab update \
  GetOrdersByDateRange \
  --parameters.name "StartDate,EndDate" \
  --parameters.description "Beginning of date range,End of date range"

--parameters.required

Хранимые процедуры только. Разделенный запятыми список значенийtrue/false, выровненных по значению.--parameters.name

Замечание

Этот параметр доступен в интерфейсе командной 2.0.0-rc строки. Построитель данных 2.0 в настоящее время находится в предварительной версии. Установите с dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prereleaseпомощью .

Example

dab update \
  GetOrdersByDateRange \
  --parameters.name "StartDate,EndDate" \
  --parameters.required "true,true"

--parameters.default

Хранимые процедуры только. Разделенный запятыми список значений по умолчанию, выровненных по --parameters.nameумолчанию.

Замечание

Этот параметр доступен в интерфейсе командной 2.0.0-rc строки. Построитель данных 2.0 в настоящее время находится в предварительной версии. Установите с dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prereleaseпомощью .

Example

dab update \
  GetOrdersByDateRange \
  --parameters.name "CustomerID" \
  --parameters.default "null"

--fields.name

Имя столбца базы данных для описания.

Замечание

Этот параметр доступен в интерфейсе командной 2.0.0-rc строки. Построитель данных 2.0 в настоящее время находится в предварительной версии. Установите с dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prereleaseпомощью .

Example

dab update \
  Products \
  --fields.name Id \
  --fields.primary-key true \
  --fields.description "Product Id"

Результирующая конфигурация

{
  "entities": {
    "Products": {
      "fields": [
        {
          "name": "Id",
          "description": "Product Id",
          "primary-key": true
        }
      ]
    }
  }
}

--fields.alias

Псевдоним поля. Используйте разделенный запятыми список.--fields.name

Замечание

Этот параметр доступен в интерфейсе командной 2.0.0-rc строки. Построитель данных 2.0 в настоящее время находится в предварительной версии. Установите с dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prereleaseпомощью .

Подсказка

Используйте --fields.alias для --fields.name определения имен полей, предоставляемых.

Example

dab update \
  Products \
  --fields.name "Id,Title" \
  --fields.alias "product_id,product_title"

--fields.description

Описание поля. Используйте разделенный запятыми список.--fields.name

Замечание

Этот параметр доступен в интерфейсе командной 2.0.0-rc строки. Построитель данных 2.0 в настоящее время находится в предварительной версии. Установите с dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prereleaseпомощью .

Example

dab update \
  Products \
  --fields.name Id \
  --fields.description "Product Id"

--fields.primary-key

Флаг первичного ключа для поля. Используйте разделенный запятыми список значенийtrue/false, выровненных по значению.--fields.name

Замечание

Этот параметр доступен в интерфейсе командной 2.0.0-rc строки. Построитель данных 2.0 в настоящее время находится в предварительной версии. Установите с dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prereleaseпомощью .

Подсказка

Используйте --fields.primary-key для --fields.name определения полей первичного ключа для представлений или таблиц без вывода ключа.

Example

dab update \
  SalesSummary \
  --fields.name "year,region" \
  --fields.primary-key "true,true"

Результирующая конфигурация

{
  "entities": {
    "SalesSummary": {
      "fields": [
        {
          "name": "year",
          "primary-key": true
        },
        {
          "name": "region",
          "primary-key": true
        }
      ]
    }
  }
}

--mcp.dml-tools

Включите или отключите средства MCP DML (язык обработки данных) для этой сущности. По умолчанию — true.

Замечание

Этот параметр доступен в интерфейсе командной 2.0.0-rc строки. Построитель данных 2.0 в настоящее время находится в предварительной версии. Установите с dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prereleaseпомощью .

Example

dab update \
  Book \
  --mcp.dml-tools false

Результирующая конфигурация

{
  "entities": {
    "Book": {
      "mcp": {
        "dml-tools": false
      }
    }
  }
}

Замечание

При --mcp.dml-tools использовании задайте mcp форму объекта, чтобы конфигурация была явной.

--mcp.custom-tool

Хранимые процедуры только. Включите настраиваемое средство MCP для этой сущности. По умолчанию — false.

Замечание

Этот параметр доступен в интерфейсе командной 2.0.0-rc строки. Построитель данных 2.0 в настоящее время находится в предварительной версии. Установите с dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prereleaseпомощью .

Example

dab update \
  RunReport \
  --mcp.custom-tool true

Результирующая конфигурация

{
  "entities": {
    "RunReport": {
      "mcp": {
        "custom-tool": true
      }
    }
  }
}

-c, --config

Путь к файлу конфигурации.

Example

dab update \
  Book \
  --description "Updated description" \
  --config dab-config.json

--help

Отображение экрана справки.

Example

dab update --help

--version

Отображение сведений о версии.

Example

dab update --version

Это важно

Изменение типа источника может привести к недействительным другим свойствам. Например, представления всегда требуют ключевых полей; Хранимые процедуры не могут определять поля ключей.