2

私の問題はこれです:

多くの SPROC、ビュー、およびテーブルを備えた非常に大規模なレガシー DB があります。

デザイナーは、サイズの "NO GO" b/c です。

データ コンテキストを構築するように SQL Metal を構成しましたが、結果のコード ファイルが非常に大きく (12 MB)、Visual Studio 2008 で開くことができません。

SQLMetal がクラス タイプ (テーブル、ビュー、SPROC_Result) ごとに新しいファイルを生成する場合、問題はありません。

しかし、それが現在機能しているので、私はうんざりしています。

アイデア??

4

4 に答える 4

1

あなたはこれを行うことができます:

  1. SQLMetal.exe を実行して .dbml ファイルを作成します。
  2. .dbml ファイル (XML) を 3 つのコンポーネント (テーブル、ストアド プロシージャ、ビュー) に解析する小さなスクリプトまたはアプリケーションを作成します。
  3. 新しい .dbml ファイルごとに SQLMetal.exe を実行して、3 つの個別の .cs ファイルを作成します。

フィルター フェーズ (ステップ 2) では、他の要件に基づいて .dbml ファイルの他の任意の分割を作成することもできます。おそらく、不要なテーブルまたはビューを除外します。または、テーブルを個別の DataContext を持つ論理コンポーネントに分割します。

于 2009-05-06T20:29:26.463 に答える
1

これを行うにはいくつかの方法があることがわかりました。

1) 独自のビルド (私にとっては 1 週間: DBML 神) http://southernbits.com/index.php/2009/05/16/dbml-hell-legacy-db-sqlmetal-is-painful-when-migrating- from-sql-デザイナー/

2)既存のツールを使用します(これは機能する可能性がありますが、まだ完全には調査していませんhttp://www.plinqo.com/

3) SQLMetal と SQL Designer の違いに注意してください。ブログを参照してください: http://southernbits.com/index.php/2009/05/25/unfortunate-differences-between-linq-sqlmetal-and-sqldesigner/

結局、これには 1 週間の調査が必要でした (plinqo を発見できませんでした)。単純な解決策はありませんでした。ツール (DBMLGod) の構築に 1.5 週間、SQLMetal と SQLDesigner の違いを考慮してコードのリファクタリング/コンパイルにさらに 1 週​​間かかりました)。試験時間は未定です...

SQL Designer を使用して構築された大規模なコード ベースがない場合は、おそらくそれほど多くの問題は発生しません。

大規模で空っぽのデータベース (多くの複雑な sproc を使用し、多くのオブジェクトを持っている) はすべて苦痛になると思います。

データベースの SQLGeneration 時間は、QuadCore 4GB 開発ボックス (痛い) で 15 分でした。

于 2009-05-25T14:33:02.750 に答える
0

http://t4-editor.tangible-engineering.com/T4-Editor-Visual-T4-Editing.htmlを使用しています

次に、datacontext を .tt テンプレート内の個別のクラス ファイルに分割できます。実際のところ、必要に応じて、コードを拡張する機会が十分にあり、基本的なニーズに適合する無料バージョンがあります。

よろしく

于 2011-04-09T14:14:26.877 に答える
0

Resharper が非常に大きな DataContext.cs ファイルで VisualStudio をクラッシュさせていることがわかりました。しかし、Keltex の提案は非常に優れています。

于 2009-05-06T21:32:16.017 に答える