SQL Server 2008 データベースを作成した後、Visual Studio で Linq-to-SQL スキーマを作成しました。次に、.dbml
ビジュアル エディター (Visual Studio 2010) で、スキーマに PK から FK への関連付けと PK から PK への関連付けを追加しました。
Visual Studio で作成した関連付けをデータベースにコピーするにはどうすればよいですか? つまり、 DBと同期するにはどうすればよいでしょうか。
SQL Server 2008 データベースを作成した後、Visual Studio で Linq-to-SQL スキーマを作成しました。次に、.dbml
ビジュアル エディター (Visual Studio 2010) で、スキーマに PK から FK への関連付けと PK から PK への関連付けを追加しました。
Visual Studio で作成した関連付けをデータベースにコピーするにはどうすればよいですか? つまり、 DBと同期するにはどうすればよいでしょうか。
Linq-to-SQLは優れたツールですが、スキーマの更新にこれに依存することはありません。DDL CREATE / ALTER / DROPステートメントを使用するアップグレードSQLスクリプトを使用してスキーマの変更を常に適用し、デプロイされたスキーマをディスク上のバージョンから現在のバージョンに変更します。このようにして、すべてのスキーマ変更をソーステキストファイルとしてバージョン管理下に置き、過去のバージョンから現在のアプリケーションバージョンにアップグレードでき、非常に大きなテーブルを使用した展開のアップグレードを含む、すべてのアップグレードパスを簡単にテストできます。
はるかに悪い代替手段は、 vsdbcmdのように、デプロイされたスキーマから目的のスキーマを比較できるSQL比較ツールを使用することです。これは些細な展開でも機能する可能性がありますが、数百万のレコードのテーブルをコピーして名前を変更すると、すぐに醜い欠点がわかります。
絶対にできないことは、スキーマの「マスター」コピーとして.dbmlファイルに依存することです。これは、Linq-to-SQLの支持者によって通常省略される小さな詳細であり、アプリケーションのv2を提供しようとして、アップグレードツールセットがないことに気付いたときに通常発見されます。