22

Visual Studio 2010 で EF4 を使用しています。SQL データベースが既に作成されており、すべての列が SQL Management Studio の Description プロパティで文書化されています。Visual Studio で edmx を作成するときに、それらの説明を読み取らせ、それらを使用して生成されたクラスにコメントを追加するにはどうすればよいですか? edmx プロパティで Summary と LongDescription を使用できることはわかっていますが、すべての説明をコピーして貼り付けることなくこれを行う方法を探しています。

ありがとう!

4

3 に答える 3

5

これには機能リクエストがあります。今後これを利用できるようにするために、自由に投票を追加してください: Entity-Framework 機能要求で SQL の説明を取得する

Huagati には、EF と L2S を操作するための優れたツールがいくつかあります。機能の 1 つは、SQL データベースに基づいて EF ドキュメントを更新することです: Huagati Web サイト

Web サイトから: Update ADO.NET Entity Data Model documentation from database は、データベースからフリーテキストのテーブルと列の説明、およびインデックス定義を取得し、EDMX デザイナーの xml ドキュメント フィールドをその説明で更新します。

データベースでこれらのフィールドを探し、モデル XML を直接更新しているようです。これがあなたが望む唯一の機能である場合、価格なしで同じことを行う VS アドインを誰かが作成できる可能性があります。これを「将来の」プロジェクトのリストに追加します(ただし、これらのプロジェクトを行う時間がないようです!) .

それが役立つことを願っています!

于 2011-01-20T20:16:49.177 に答える
2

データベースからのメタデータを edmx に入力するために、何かを一緒にハッキングする方法を検討してきました。

概要と詳細な説明の edmx プロパティは、EntityType 要素の下の要素に格納されます。

<EntityType Name="EntityName">
    <!-- Without this element classes are typically generated with 
         "No Metadata Documentation available." -->
    <Documentation>
            <Summary>Entity Summary</Summary>
            <LongDescription>Entity Long Description</LongDescription>
          </Documentation>
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Type="String" Nullable="false" MaxLength="25" Unicode="false" FixedLength="true" />
    <!-- Lots of other properties -->
  </EntityType>

edmx ファイルの関連セクションである Store Schema Definition Language (SSDL) は、System.Data.Entity.Design.EntityStoreSchemaGenerator.GenerateStoreMetadata()によって作成されます。または、少なくともこれは EdmGen の場合です。

XML を出力するために EntityStoreSchemaGenerator.WriteStoreSchema(...) によって使用される前に、 EntityStoreSchemaGenerator.StoreItemCollectionを変更できるかどうかを確認します。

アップデート

それはうっとうしいものでした。System.Data.Metadata.Edm.Documentationは封印されており、内部コンストラクターのみがあります。関心のある両方のプロパティは、内部でのみ設定することもできます。そのため、行き止まりのアプローチのように思えます。

于 2011-07-29T00:07:41.600 に答える
1

デザイナー自体に拡張性のポイントがあるかどうかはわかりません。ただし、Summary フィールドと LongDescription フィールドが edmx ファイルに入力されると、他の変更を行ったり、データベースからモデルを再更新したりしても、これらの値はそこに残ります。テーブルを削除して再度追加しない限り、これらの値は入力されたままになります。

したがって、一度にすべてをコピーして貼り付けることができます (モデルにはいくつのテーブルがありますか?これは思ったよりも速く進みます)。または、データベースから情報を抽出するプログラムを作成することもできます (SQL SMO などを使用)。 、そのプログラムで edmx ファイルを編集し、Summary フィールドと LongDescription フィールドに入力します (プログラムを試すたびに edmx のバックアップを作成します。edmx ファイルを台無しにしたくなく、最初からやり直す必要があります)。

大規模なモデルがあり、それらを大量に作成している場合、それを自動的に実行するプログラムを作成することは時間の価値があります。少数のモデルしかなく、テーブルが多すぎない場合は、コピーして貼り付けてください。

ここでEntity Framework チームにフィードバックを送信することを検討してください。デザイナーは、SQL Server から説明フィールドを自動的に取得する必要があるようです。良い機能リクエストになります。

于 2010-07-01T06:57:37.237 に答える