2

デザイナーから EDMX モデルを更新して大規模なデータベースにテーブルを追加すると、出力ウィンドウに次のエラーが返されます。

次の例外のため、モデルを生成できません: コマンド定義の実行中にエラーが発生しました。詳細については、内部例外を参照してください。

着信表形式データ ストリーム (TDS) リモート プロシージャ コール (RPC) プロトコル ストリームが正しくありません。この RPC 要求で指定されたパラメーターが多すぎます。最大は 2100 です。データベースからのメタデータの読み込みに 00:00:04.5149496 かかりました。モデルの生成には 00:00:14.0108568 かかりました。次の例外のため、モデルを生成できません: コマンド定義の実行中にエラーが発生しました。詳細については、内部例外を参照してください。

着信表形式データ ストリーム (TDS) リモート プロシージャ コール (RPC) プロトコル ストリームが正しくありません。この RPC 要求で指定されたパラメーターが多すぎます。最大は 2100 です。データベースからのメタデータの読み込みに 00:00:04.2847682 かかりました。モデルの生成には 00:00:06.1297751 かかりました。

この問題をどのように回避/解決できますか?

4

1 に答える 1

2

Microsoft サポートによると、これは、設計者がモデル内の既存のテーブルのリストとデータベース内のテーブルのリストをどのように区別するかという設計上の制限の結果です。

この問題を回避するには、主に次の 3 つのオプションがあります。

  1. モデルに必要なテーブルのみを表示する権限を持つデータベース ユーザーを作成します。

    このオプションの欠点は、モデルが維持されるユーザーの権限を維持する必要があることです (たとえば、モデルに追加されたテーブルごとに、「モデル保守ユーザー」にテーブルを表示する権限を付与する必要があります) (注意: でユーザーを変更した後)。接続構成を有効にするには、デザイナーや VS を終了する必要がある場合があります)

  2. EDMX を複数の小さなモデルに分割する

    これにより、場合によっては大規模なモデルのパフォーマンスが向上する可能性がありますが、モデル間でテーブルから選択する際の問題を回避するために、境界を慎重に選択する必要があります。

  3. モデルからテーブルを削除する

    一般に、これは、コンテキスト上不要なテーブルがモデルに既に存在する場合のオプションにすぎません。

于 2011-11-01T14:12:29.043 に答える