EF 6.1、MVC 5、VS 2013、C#を使用する
Toad DM SQL Server向けに設計された既存のデータベースモデルがあり、常に最新の状態に保つことが非常に重要です。
ADO.NET Entity Data Modelを使用して、モデルを生成するためにCode First from Database(EF 6.1の新機能)を選択しました。注:モデルクラスとDbContextクラスは正常に生成されましたが、NO .edmxまたは.ttファイルは生成されませんでした。
次に、Entity Frameworkを使用して、ビューを備えたMVC 5コントローラーという新しい足場アイテムを追加しました。注:成功、コントローラーおよびビューの生成
これからは、Code Firstを使用してデータベースを更新したくありません。代わりに、データベースの変更に基づいてモデルを更新する必要があります。次はどうする? edmxファイルがない場合、データベースからモデルクラスを更新できませんか?
エンティティデータモデルウィザードのデータベースのコードファーストは、エンティティクラスをコードファーストスタイルで作成されたかのように作成する優れた仕事をします。 EDMXスタイルの「データベースからモデルを更新」と同様に、データベースの変更に応じてこれらのクラスを最新の状態に保つ方法があるかどうかを確認します。私が研究したことから、これは組み込みのツールを使用して不可能ですnot。ただし、次のような回避策があります。
製品テーブルと顧客テーブルを持つデータベースがあるとしましょう。もともと、StoreDBContextクラスを作成し、オブジェクトの1つとして製品を選択しました。次に、既存のコンテキストに顧客テーブルを新しいエンティティとして追加します。 Code First Wizardを使用してこれを行う方法は次のとおりです。
StoreDBContextTemp.cs
、および新しく追加されたエンティティの仮想プロパティをコピーします。public virtual DbSet<Customer> Customers {get; set;}
StoreDBContext.cs
dbcontextクラス。テーブルを追加または削除する場合は、フィールドを手動で調整する必要がありますが、少なくとも、モデルに新しいテーブルが追加されるたびに多数のプロパティを手書きする必要はありません。
三つのこと。
Code Firstを使用する場合、.edmxはありません。
Code First Migrationsを使用する場合は、最初にコードを記述し、その後、データベースに変更を移行する必要があります。これにより、生成されたコードを使用せずにコードをより整理することができます。これは利点です。
Visual Studioには、逆のことを行うためのプラグインがあります。 Entity Framework PowerToolsを使用すると、データベースを選択してオブジェクトにマップできます。
https://visualstudiogallery.msdn.Microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d
Brian Vander Plaatsの答えに追加することがもう1つあります。ステップ4では、新しいStoreDBContextTemp.cs/OnModelCreatingメソッドにあるものをコピーして、既存のStoreDBContext.cs/OnModelCreatingに追加することもできます。そうしないと、新しいコンテキストクラスを削除するときに、これらの構成の追加が失われます。