2

最初に EF4 コードを使用するときに、大規模なデータベース モデルを操作する際のアドバイスはありますか? エンティティ セットはデータベース コンテキストに追加されますが、100 個のテーブルがある場合は、テーブルごとに 1 つずつ、100 個の DbSet を作成する必要があります。

public class Customers : DbContext
{
    public DbSet<Customer> Customers {get; set;}
    public DbSet<Employees> Employees {get; set;}
    public DbSet<...
    ...
    ...
    95 more
}

大規模なデータベース モデルでは、ドメインに応じて DbSet を複数のクラスに分割する方がよいでしょうか?

4

1 に答える 1

2

はい、テーブルごとに POCO クラスと DbSet を作成する必要があります。それがCode firstの意味です。気に入らない場合は、標準の EDMX を使用して、EF にエンティティとマッピングを生成させることができます。

モデルを複数のコンテキストに分割することは良い考えですが、それはドメイン モデルとソリューションの他の特性に依存します。遅延読み込みや複雑なクエリなどの多くの機能は、同じコンテキストに関連付けられたエンティティに対してのみ機能することに注意してください。そこでは、コンテキストにマップされたエンティティのみを使用できます。

このような大きなソリューションについては、集約ルートとリポジトリに関するドメイン駆動設計理論を確認できます。ソリューションの分割についていくつかのアイデアを得ることができます。

于 2010-10-11T07:46:45.127 に答える