2011-08-12 17 views
3

私は新しいデータベースで作業していますが、という同義語の番号を持つVisual Studio 2010データベースプロジェクトを使用して作成した状況があります我々のレガシーデータベースに。Visual Studioデータベースプロジェクトはシノニム上のビューを作成できません

私たちの計画は、これらの同義語についてのビューを作成することです。参照されているテーブルは恐ろしいので、ビューはデータをより良いフォーマットに変換します。その後、Entity Frameworkを使用してこれらのビューにORMを提供します(データを移行する際に実際のテーブルのビューを交換できるという考え方)。

問題:私は問題なしでデータベースプロジェクトのシノニムをスクリプト化できます。私はこれらのシノニムを参照するビューを作成しようとすると、しかし、私のようなエラーに直面しています:[dbo].[Person]が新しいビューである

Error 1 SQL03006: View: [dbo].[Person] has an unresolved reference to object [dbo].[ma_contact]. 

...と [dbo].[ma_contact]は、レガシーテーブルの同義語です。

回避方法:すべてのビュー作成スクリプトをScript.PostDeployment.sqlに配置し、if-exists-then-drop-then-createロジックを手動で実行します。

これは理想的ではありませんが、今のところ存続可能です。誰もが、これらの意見を「適切に」行う方法について考えていますか?

答えて

1

元のデータベースにデータベース参照を追加しようとしましたか?そのフォーマットをdacpac(SSDT SQLプロジェクトの場合)またはDBSchemaファイル(DBプロジェクトの場合)のいずれかに抽出する必要があります。それを済ませたら、プロジェクトが見つけることができる場所に保管します。すべてのプロジェクトで参照できるように、DBプロジェクトのルートに「スキーマ」フォルダを使用しました。あなたのプロジェクトでは、 "References"フォルダを右クリックし、Database Referenceを追加します。 DBSchema/Dacpacファイルを検索し、データベースの名前とともに使用します。シノニムを適切に解決できるようにする必要があります。

関連する問題