3

私たちのデータベースには、EF モデルで使用したい約 500 のテーブルがあります。何年も単純な ADO.net で作業した後、足を濡らすために、50 以下から始めたいと思います。

問題は、私たちの SQL サーバーには、何年にもわたって作成され、動的に生成された多くのテーブルがデータベースに存在する何千もの他のテーブルが含まれていることです。信じようと信じまいと:

select count(*) from INFORMATION_SCHEMA.TABLES
73261

だからテーブルが多い。EF モデルまたはエンティティを設計、構築、またはテンプレート化しようとしたほぼすべてのツールがハングするか、テーブルのリストを返さないことがわかりました。VS2012 の SQL Server オブジェクト エクスプローラーでさえ、テーブルを一覧表示せず、代わりにテーブル フォルダーのアイコンの上に小さな "x" を表示します。そのため、テーブルのサブセットを選択することさえできません。

EF を使用するにはどのようなオプションがありますか? エンティティを使用するテーブルを明示的に定義できるテンプレートはありますか? 50 個のテーブルがあっても、空の EDMX でそれぞれのコードをハンドリングしたくありません。

4

2 に答える 2

2

データベース/コード ファーストのアプローチを使用し、Visual Studio をデータベースにまったく接続しない (つまり、edmx を作成しない、またはサーバー エクスプローラーに接続しない) と、これを簡単に行うことができます。モデルファーストの利点は何もありませんが、プロジェクトはデータベース/コードファーストのアプローチでより適切に提供されるように思えます。

  1. 既存のモデルがあり、EDMX から DB に変更をプッシュするつもりはありません
  2. これをデータベースのサブセットに実装しようとしています

このリンクには適切な要約 ( Code-first vs Model/Database-first ) がありますが、データベース/コード ファーストのアプローチでは変更をコードからデータベースにプッシュしないため、コードの下の最後の 2 つの箇条書きが最初に表示されます。あまり適用しないでください。あなたのものはデータベース/コード ファーストのハイブリッドです。

70k のテーブルでは、どの GUI もトリッキーになると思います。Database / Code First と言っている場合、コードを使用してデータベースを作成/定義および更新していないことを伝えようとしています。誰かがこれにもっと簡潔/正確に答えることができるでしょうか?

于 2013-01-15T16:18:03.440 に答える