ModelLoadOptions クラス

定義

Dacpac ファイルなどのデータ ソースからモデルを読み込むためのオプション。

シナリオによっては、これらのオプションが非常に重要になる場合があります。 たとえば、 CodeAnalysisService を使用して静的コード分析を実行する場合は、 LoadAsScriptBackedModel オプションを true に設定することを強くお勧めします。多くのルールでは、完全にスクリプト化されたソースが必要であり、スクリプトに基づいていないモデルでは期待どおりに動作しない可能性があるためです。

public sealed class ModelLoadOptions
type ModelLoadOptions = class
Public NotInheritable Class ModelLoadOptions
継承
ModelLoadOptions

コンストラクター

名前 説明
ModelLoadOptions()

Memoryストレージを使用し、LoadAsScriptBackedModelを false に設定する既定のオプションを使用して、ModelLoadOptionsのインスタンスを構築します。

ModelLoadOptions(DacSchemaModelStorageType, Boolean, Boolean)

指定したオプションを使用して ModelLoadOptions のインスタンスを構築します。

ModelLoadOptions(DacSchemaModelStorageType, Boolean)

指定したオプションを使用して ModelLoadOptions のインスタンスを構築します。

プロパティ

名前 説明
LoadAsScriptBackedModel

オブジェクトがスクリプト化された表現によってバックアップされるように、モデルを読み込む必要がありますか? この場合、 UserDefined スコープ内のオブジェクトには、ソース名とソースの位置情報が含まれます。

Dacpac またはその他のスクリプト化されていないソースから読み込む場合、モデルにはソース情報が含まれません。 つまり、 CodeAnalysisService を使用して静的コード分析を実行すると、一部のルールが正しく機能せず、元の定義を持つスクリプトがないため、モデル内の既存のオブジェクトを AddOrUpdateObjects(String, String, TSqlObjectOptions) メソッドを使用して置き換えられなかったことを意味します。 CodeAnalysisServiceを使用するシナリオでは、これを true に設定することを強くお勧めします。 同様に、モデルの設定で既存のオブジェクトを更新する場合は、これを true に設定すると便利な場合があります。

スクリプト化されたモデルの作成には、パフォーマンス コストが大きくなる可能性があることに注意してください。 UserDefinedスコープ内のすべての最上位オブジェクトは文字列としてスクリプト化され、スクリプト化された表現に置き換えられ、その後、モデルはすべてのリレーションシップを完全に解決する必要があります。 これにより、モデルの読み込み時に 1 回限りのパフォーマンスヒットが発生します。

ModelStorageType

モデルをメモリに格納するか、ファイルベースのストレージを使用する必要がありますか?

ThrowOnModelErrors

モデルにブロック エラーが存在する場合に、モデル編集 API が DacModelException をスローするかどうかを定義します。

AddObjects(String)AddOrUpdateObjects(String, String, TSqlObjectOptions)DeleteObjects(String)ConvertToScriptedObject(TSqlObject, String)などの API 呼び出しを使用して新しいオブジェクトを追加したり、モデル内の既存のオブジェクトを削除または変更したりすると、モデルはモデルブロック エラーの存在を通知DacModelExceptionスローします。 モデル ブロック エラーは、パーサー、インタープリター、その他のエラーなどの重大なエラーがオブジェクトに存在する可能性を示します。 このオプションを false に設定すると、このような重大なエラーが発生した場合でもモデルを構築できます。 その後、モデル エラーのあるオブジェクトは、 GetModelErrors() メソッドを使用して取得できます。

モデル ブロック エラーを含むオブジェクトがモデルに追加されると、エラーが発生していないオブジェクトの部分を保持するために、エラーのある部分が削除またはコメント アウトされるようにオブジェクトが編集されます。 たとえば、プロシージャ本体にパーサー エラーがあるストアド プロシージャでは、モデルに追加する前にその本体がコメント アウトされます。 最悪の場合、モデルエラーを維持しながらオブジェクトが完全に削除されます。

現在の実装では、モデル エラーのあるオブジェクトが次のように処理されることに注意してください

  1. SQL プロシージャとビューは、コメント付きの本文でモデルに追加されます。
  2. 他のオブジェクトの種類は、モデル エラーを保持しながら完全に削除されます。

適用対象