0

ショッピング コンテキストと呼ばれるDevart linqconnect モデルを作成し、mysql をデータベースとして使用しています。Linqconnect の試用版を使用しています。

データベースにストアド プロシージャ clothingItems を作成しました。ストアド プロシージャをダイアグラムに追加しようとすると、次の警告が表示されます。

プロシージャの結果セットのメタデータを取得するには、プロシージャを実行する必要があります。これにより、データベースが破損する可能性があります。プロシージャ名: shopping.clothing_items プロシージャ結果セットのメタデータを取得しますか?

しかし、コードビハインドファイルの後、インテリセンスメニューの clothingItemResults と ClothingItem メソッドに ShoppingDatcontext.ClothingItem として表示され、次のようなメソッドが複製されていることがわかります (私はそう思います!):

void ClothingItem1(),       
void ClothingItem2();         
void ClothingItem3(); 

また、図に追加されていません。

データベースに損傷を与えずにストアド プロシージャを追加する方法と、それを表示するダイアグラムに挿入する方法を教えてください。助けてください。

4

1 に答える 1

1

モデルにプロシージャを追加する場合、Entity Developerはストアドプロシージャを実行して、このストアドプロシージャに対応するメソッドの戻りタイプを判別しようとします。したがって、プロシージャ結果セットのメタデータの取得に関する警告が表示されます。OKを選択した場合、ストアドプロシージャが実行され、リターンタイプが決定されます。データまたはデータベース構造が損傷する可能性があるかどうかは、手順の内容にのみ依存します。この手順が安全であると確信している場合は、エンティティ開発者がこの手順を実行してメタデータを取得できるようにすることができます。それ以外の場合は、プロシージャの結果セットを手動で構成できます。

この手順を数回追加したため、重複するメソッドが生成されます。モデルにプロシージャを追加するたびに(同じ場合でも)、新しいメソッドが生成されます。ストアドプロシージャ用に生成されたすべてのメソッドは、[モデルエクスプローラー]-> [メソッド]および生成されたコード(* .Designer.cs)で使用できます。対応するストアドプロシージャの名前、パラメータ、および結果の種類を確認するには、[モデルエクスプローラ]-> [メソッド]で必要なメソッドをダブルクリックするか、コードを参照してください。

メソッドはダイアグラムのレイアウトには表示されません。モデルエクスプローラー->メソッドおよびコードでのみ使用できます。ダイアグラムには、クラス、複合型、列挙型、およびそれらのプロパティとそれらの間の関係が含まれています。

詳細については、こちらを参照してください。

于 2013-03-15T12:47:56.247 に答える