あなたのプロジェクトではデータベースファーストアプローチを使用していますが、モデルファーストアプローチを考えています。
コード筋金入りのプログラマは、設計者の任意の種類を好きではないとEDMXのXMLで定義するマッピングが複雑すぎるので、非常に人気•
最初。
コードを完全に制御します(変更が難しい自動生成されたコードはありません)。
•一般的な期待は、DBを気にしないことです。 DBはロジックなしの単なるストレージです。 EFは作成を処理し、あなたはそれがどのように仕事をしているか知りたくありません。
•データベースを手動で変更すると、コードによってデータベースが定義されているため、ほとんどの場合失われます。非常に人気•
データベース最初
あなたはDBは、データベース管理者によって設計され、別々に開発されたか、DBを既存している場合している場合。 •EFでエンティティを作成させ、マッピングの変更後にPOCOエンティティを生成します。
•POCOエンティティに追加の機能を追加するには、テンプレートをT4修正するか、部分クラスを使用する必要があります。
•データベースでドメインモデルが定義されているため、データベースを手動で変更することは可能です。データベースからモデルを更新することができます(この機能は非常に有効です)。
•私はしばしば、VSデータベースプロジェクト(プレミアム版と究極版のみ)を一緒に使用します。あなたはデザイナーのファンであれば私見人気の最初の
•
モデル(=あなたが書くコードまたはSQLを好きではありません)。あなたのモデルを「描く」とyoutはPOCOエンティティを生成するために、データベースのスクリプトとT4テンプレートを生成するためのワークフローを聞かせます•
。あなたはエンティティとデータベースの両方でコントロールの一部を失いますが、小さな簡単なプロジェクトでは非常に生産的になります。あなたはPOCOエンティティでの追加機能が必要な場合
•あなたは、どちらかのT4は、テンプレートを変更したり、部分クラスを使用する必要があります。
•データベースを手動で変更すると、モデルでデータベースが定義されている可能性が最も高くなります。これは、データベース生成パワーパックがインストールされている場合に効果的です。 VSでデータベーススキーマを更新(再作成するのではなく)または更新することができます。
モデルを最初に(使用しようとする)、データベースを最初に(実際に使用している)混同しています。私はこれをすべて後ろに残し、コードを先に進めることをお勧めします。 –
@GertArnold Hm、既に持っている既存のエンティティの自動生成コードはどうですか?どのようにフレームワークがこの移行をコードファーストにするのか?実際には、私がこれらのアプローチのすべてで迷っている理由は、最初にコードと最初にdbが普及し、よく文書化されており、モデルはあまり人気がないようです。 – Semant1ka
モデルファーストクラスをそのまま使用できます。しかし、必要に応じて特定のマッピングを追加するのには多少の努力が必要です。また、エンティティデータモデル用のVSツールを使用して、データベースからコードファーストモデルを作成して最初から作成することもできます。 –