ModelLoadOptions Класс

Определение

Параметры загрузки модели из источника данных, например dacpac-файла.

Эти параметры могут быть очень важными в зависимости от сценария. Например, при выполнении анализа статического кода с помощью CodeAnalysisService настоятельно рекомендуется LoadAsScriptBackedModel задать значение true, так как многие правила ожидают полностью скриптованного источника и не могут работать должным образом в модели, отличной от скриптов.

public sealed class ModelLoadOptions
type ModelLoadOptions = class
Public NotInheritable Class ModelLoadOptions
Наследование
ModelLoadOptions

Конструкторы

Имя Описание
ModelLoadOptions()

Создает экземпляр ModelLoadOptions с параметрами по умолчанию, которые используют Memory хранилище и задают LoadAsScriptBackedModel значение false.

ModelLoadOptions(DacSchemaModelStorageType, Boolean, Boolean)

Создает экземпляр ModelLoadOptions с указанными параметрами.

ModelLoadOptions(DacSchemaModelStorageType, Boolean)

Создает экземпляр ModelLoadOptions с указанными параметрами.

Свойства

Имя Описание
LoadAsScriptBackedModel

Следует ли загружать модель таким образом, чтобы объекты были резервными копиями с помощью скриптовых представлений? В этом случае объекты в UserDefined области будут иметь сведения о исходном имени и расположении источника.

При загрузке из Dacpac или любого другого источника, отличного от скриптов, модель не будет иметь исходных сведений. Это означает, что при выполнении статического анализа кода с помощью CodeAnalysisService некоторых правил может не работать правильно, и что существующие объекты в модели не удалось заменить с помощью AddOrUpdateObjects(String, String, TSqlObjectOptions) метода, так как скрипт не имеет исходного определения. Для сценариев, использующих CodeAnalysisService параметр true, настоятельно рекомендуется. Аналогичным образом, если вы хотите обновить существующие объекты в параметре модели, это может оказаться полезным.

Обратите внимание, что при создании скриптовой модели может возникнуть значительный объем затрат на производительность. Все объекты верхнего уровня в UserDefined области будут написаны как строки, а затем заменены их скриптами представления, после чего модель будет полностью разрешать все связи. Это приведет к однократной производительности при загрузке модели.

ModelStorageType

Следует ли хранить модель в памяти или использовать хранилище с поддержкой файлов?

ThrowOnModelErrors

Определяет, вызывает DacModelException ли API редактирования модели, если в модели присутствуют какие-либо блокирующие ошибки.

При добавлении нового объекта или удалении или изменении существующих объектов в модели с помощью вызовов API, таких как AddObjects(String), AddOrUpdateObjects(String, String, TSqlObjectOptions)DeleteObjects(String) иConvertToScriptedObject(TSqlObject, String), модель выдает DacModelException сигнал о присутствии блокирующих ошибок модели. Ошибки блокировки модели указывают на наличие серьезных ошибок, таких как синтаксический анализ, интерпретатор и другие ошибки в объектах. Если этот параметр имеет значение false, можно создать модель, даже если она имеет такие серьезные ошибки. Впоследствии эти объекты с ошибками модели можно получить с помощью GetModelErrors() метода.

Когда объекты с ошибками блокировки модели добавляются в модель, объект редактируется таким образом, чтобы неустраниемые части были удалены или закомментированы наилучшим образом, чтобы сохранить части объекта, которые не имеют ошибок. Например, хранимая процедура с ошибкой синтаксического анализа в теле процедуры будет комментировать его тело перед добавлением в модель. В худшем случае объект полностью удаляется при сохранении ошибок модели.

Обратите внимание, что текущая реализация обрабатывает объекты с ошибками модели следующим образом.

  1. Процедуры и представления SQL добавляются в модель с закомментированным текстом.
  2. Другие типы объектов полностью удаляются при сохранении ошибок модели.

Применяется к