2016-06-19 13 views
3

私は現在、.NETツール(ASP.NET、MVC)を使ってWeb開発を研究しています。私はそのアイデアを正しく理解していません。DataBaseを更新する前にDataBaseModel.edmxの更新を保存する方法

私は既に参加したいプロジェクトを持っています。これはDataBaseModel.edmxを持ち、このモデルからデータベース要素を生成する方法を知っています。 新しい要件のためにDataBaseModelを調整する必要があるので、編集して変更を保存してデータベースのテーブルを追加するための新しいスクリプトとスクリプトを作成したが、フレームワークは既存のテーブルと新しいエンティティを一致させたい。ちょっと待って!私はテーブルにこれらの新しいエンティティを持っていないし、それらを作成したいが、私はそれらを最初に一致させる必要があるので、私はそれを行うことはできません!

私はここで間違っていることを指摘できますか?データベースを正しく更新するためにモデルを調整する必要はありますか?私はインターネットを見てきましたが、私はまだポイントを得ていませんでした。

+1

モデルを最初に(使用しようとする)、データベースを最初に(実際に使用している)混同しています。私はこれをすべて後ろに残し、コードを先に進めることをお勧めします。 –

+0

@GertArnold Hm、既に持っている既存のエンティティの自動生成コードはどうですか?どのようにフレームワークがこの移行をコードファーストにするのか?実際には、私がこれらのアプローチのすべてで迷っている理由は、最初にコードと最初にdbが普及し、よく文書化されており、モデルはあまり人気がないようです。 – Semant1ka

+0

モデルファーストクラスをそのまま使用できます。しかし、必要に応じて特定のマッピングを追加するのには多少の努力が必要です。また、エンティティデータモデル用のVSツールを使用して、データベースからコードファーストモデルを作成して最初から作成することもできます。 –

答えて

0

最後に、私は問題が何かを理解しました。

エラーに関するメッセージ(約50件ありました)の中には、2つの関連付けが原因で2つのエラーが発生しました。これらの関連付けは、既にモデルから削除したフィールドを使用していました。 ModelのXMLビューで見るのが簡単でした。

これらの冗長な関連付けを削除するとすぐに、モデルからデータベースを生成することができました。

1

あなたのプロジェクトではデータベースファーストアプローチを使用していますが、モデルファーストアプローチを考えています。

コード筋金入りのプログラマは、設計者の任意の種類を好きではないとEDMXのXMLで定義するマッピングが複雑すぎるので、非常に人気•

最初。

コードを完全に制御します(変更が難しい自動生成されたコードはありません)。

•一般的な期待は、DBを気にしないことです。 DBはロジックなしの単なるストレージです。 EFは作成を処理し、あなたはそれがどのように仕事をしているか知りたくありません。

•データベースを手動で変更すると、コードによってデータベースが定義されているため、ほとんどの場合失われます。非常に人気•

データベース最初

あなたはDBは、データベース管理者によって設計され、別々に開発されたか、DBを既存している場合している場合。 •EFでエンティティを作成させ、マッピングの変更後にPOCOエンティティを生成します。

•POCOエンティティに追加の機能を追加するには、テンプレートをT4修正するか、部分クラスを使用する必要があります。

•データベースでドメインモデルが定義されているため、データベースを手動で変更することは可能です。データベースからモデルを更新することができます(この機能は非常に有効です)。

•私はしばしば、VSデータベースプロジェクト(プレミアム版と究極版のみ)を一緒に使用します。あなたはデザイナーのファンであれば私見人気の最初の

モデル(=あなたが書くコードまたはSQLを好きではありません)。あなたのモデルを「描く」とyoutはPOCOエンティティを生成するために、データベースのスクリプトとT4テンプレートを生成するためのワークフローを聞かせます•

。あなたはエンティティとデータベースの両方でコントロールの一部を失いますが、小さな簡単なプロジェクトでは非常に生産的になります。あなたはPOCOエンティティでの追加機能が必要な場合

•あなたは、どちらかのT4は、テンプレートを変更したり、部分クラスを使用する必要があります。

•データベースを手動で変更すると、モデルでデータベースが定義されている可能性が最も高くなります。これは、データベース生成パワーパックがインストールされている場合に効果的です。 VSでデータベーススキーマを更新(再作成するのではなく)または更新することができます。

+0

概要をありがとう! – Semant1ka

関連する問題