私はこのEFに従わない既存プロジェクトにエンティティフレームワークバージョン4.3.1を実装しようとしています。このデータベースはすでに開発されており、現在ado.netを適用しています。私はEFで作業することから始めます、それはデータベースファースト、コードが最初です。既存のデータベースを持つEntity Framework
答えて
データベースが既に存在しています。私はEDMXファイルよりもドメインがより組織化されているため、注釈を使用してテーブルをマッピングするコードファーストのアプローチを使用しています。視覚的なEDMXが多くのテーブルに存在する場合、デザインはデータと接続が混雑するため、実際には役に立たなくなる可能性があります。作成)
[Table("tbl_cust")]
public class Customer
{
[Key]
[Column("cust_id")]
public int CustomerId { get; set; }
[Column("cust_name")]
public string Name { get; set; }
// Add other properties below
}
2:
2つのステップでは、このアプローチで始めることができます。
1)、例えばCustomer
をドメインモデルクラスを作成し、データのアノテーションを使用して、テーブルにマッピングコンテキストクラスは、各モデルのDbSet<T>
プロパティをDbContext
由来と設定し、我々はそう我々の場合には1つしかない:
public class MyApplicationContext: DbContext
{
public MyApplicationContext() : base("name=ConnectionStringName") { }
public DbSet<Customer> Customers { get; set; }
}
は今どこでも、あなたのコード内で派生DbContext
クラスをインスタンス化し、LINQのクエリを使用してを行うことができます。
var _db = new MyApplicationContext();
var customer = _db.Customers.Where(c => c.CustomerId == 37).FirstOrDefault();
はNuGetを使用してEntityFrameworkアセンブリへの参照を追加することを忘れないでください。
Good Luck。
あなたのデータベースは既に存在しているので、明白な選択肢はDatabase firstです。データベースが常識的に設計されていれば、(ほとんどの場合)素晴らしい結果が得られます。
私はあなたのデータベースを視覚化するためにEFデザイナーを使いたいかどうかと思います。あなたはEF 4.3.1を見ているので(実際には4.3.1ではなくEF5を見ていなければなりません - EF5は最新バージョンです)、あなたはデザイナーを気にしないと思います。この場合、EF Power Toolsを使用してデータベースをリバースエンジニアリングすることができます。これにより、データベースと一致する一連のクラスが作成されます。データベースが既に作成されているため、EFはクラス内の変更を検出できないことに注意してください(追加の情報がデータベースに格納され、モデルが変更されたかどうかをEFが判別できる場合)。これにはblog postを必ずお読みください。決定に役立つ多くの詳細が含まれています。 デザイナーでモデルを見ることができたら、VSを使用してDBをリバースエンジニアリングすることができます。 VS2012を使用する場合は、デフォルトでEF5とDBContextを取得します。コードファーストを使用するのと異なるのは、モデルを構築する代わりに、モデルはプロジェクトの一部であるedmxファイルに保存されます(コードを生成するために使用されます)
- 1. 既存のクラスと既存のテーブルを持つEntity Framework 4.1
- 2. 複数のデータベースを持つWPF Entity Framework
- 3. Entity Framework - 既存のデータベースを追加する
- 4. 既存のビジネスレイヤとデータベースでEntity Frameworkを使用する
- 5. Entity Framework - 既存のデータベース、別個のライブラリ内のクラス
- 6. Entity Framework 4.3既存のデータベースでの移行のバグ
- 7. 既存のデータベースへのEntity Frameworkからマスタへのアクセスなし
- 8. Entity Frameworkコア2.0既存のデータベースからのスカフォールドビュー
- 9. Entity Frameworkコア - クラスファイルの1つまたはグループへの既存のデータベース
- 10. Entity Frameworkコアを持つキャッシュテーブル
- 11. 既存のデータベースでIDを持つEF7
- 12. Entity Frameworkの - データベース
- 13. は、私は、次のデータベース・スキーマを持つEntity Frameworkのモデル
- 14. 既存のデータベースを使用する場合のEntity Frameworkに精通する
- 15. Entity Framework 5 - 既存のデータベースからPOCOクラスを生成する方法
- 16. Entity Frameworkを使用してMVCアプリケーションから既存のAzureデータベースに接続
- 17. Entity Framework - 既定の子オブジェクト
- 18. Entity Framework 6巨大なデータベース用の複数のデータモデルを持つ最初のデータベース
- 19. Entity Framework - 2つのプロジェクト、同じデータベース
- 20. 複数のデータソースを持つEntity Framework
- 21. Entity Frameworkの既存のリストに新しいpropertieを追加
- 22. Entity Framework T-Sql "equivalent"を持つ
- 23. Entity Framework Attach()共有オブジェクトを持つオブジェクトツリー
- 24. Entity Frameworkコアから既存のストアドプロシージャを呼び出す
- 25. 既存のモデルでADO.NET Entity Frameworkを使用できますか?
- 26. Entity Frameworkの既存のエンティティへの変更
- 27. Entity Framework:既存のEFエンティティへのsproc結果のマッピング
- 28. Entity Frameworkデータベースを見る
- 29. Entity Frameworkとデータベースの列名
- 30. モデルからのEntity Frameworkデータベース
おかげさまで、私はDatabaseを最初に使用したいと思っていますが、最初にリバースエンジニアコードを使用することに興味があったとしても、まず最初にコードを試みましたが、EFを作成していませんクラスが失敗した可能性があります。私のデータベースはうまく設計されていませんでした。 –
「EFクラスを作成していない」とはどういう意味ですか? –
by EF Classes私は、テーブル、モデルフォルダのDomainクラスと言っています。リバースエンジニアコードを最初に実行した後は、表示されません。このリンクはhttp://msdn.microsoft.com/ja -us/data/jj200620.aspx –