0

Linq to Entity を使用して、ADO.NET を使用した 3 層 Web アプリ MVC 3.0 のセットアップを想像しています。ビルドは VS 2010、サーバー OS MS Server 2008、データベース MS Sql Server 2008 です。言語は C# または VB です。

  1. データベース内のテーブルに列を追加するための優先メカニズムは何ですか?
  2. テーブルの列の型をリファクタリングする最適なメカニズムは何ですか?

問題は、データベースとエンティティ モデル間の同期を維持することです。「典型的な」RDBMS-SQLClient スキームと比較して、Linq バリアントは、これらの DDL 操作に多くのオーバーヘッドをもたらすようです。

おそらく、私は何かが欠けている....スティーブ

4

1 に答える 1

1

従うアーキテクチャに応じて、目的の動作を得ることができます。

データベース ファースト モデルを使用すると、データベースからテーブルを追加するデザイナーを通じてモデル クラスを維持し、列を追加/リファクタリングし、dbml を更新してから、データベースの変更スクリプトを生成する必要があります。

Model first デザインを作成する場合は、デザイナーですべてのモデル クラスを作成してから、データベースを作成するスクリプトを生成します。

私の意見では、あなたが完全に制御でき、より「開発者」指向のアプローチであるという現時点でのベストプラクティスはコードファーストです。すべてのオブジェクトと同じようにプログラムですべてのクラスを作成し、流暢な API を使用してクラスを目的のデータベースにマップするライブラリを作成し (さまざまなデータ ストア用に複数のライブラリを作成できます)、変更を移行することもできます。したがって、すべてのクラスを「データベースに依存しない」方法で作成し、移行を通じて維持するか、Red Gate の SQL Compare などの比較ツールを使用して変更スクリプトを作成することができます。

于 2012-05-16T06:01:29.123 に答える