0

いくつかのデータベースコンテキストを含むMyApp.DataAccessというプロジェクトがあります。これは1つのコンテキストとして始まり、3つに成長しました(私のアプリにはすべて個別のデータベースが必要です)。ご想像のとおり、それぞれにInitializerクラスがあり、現在はMigrationsを使用しようとしています。これにより、MyApp.DataAccessプロジェクトが実際に混乱することがわかります。

MyApp.Modelというプロジェクトもあります。このプロジェクトには、前述の各コンテキストでの使用ごとにフォルダーにまとめられたモデルクラスが含まれています。

複数のDbContextとModelクラスを整理するのに最適な方法に苦労しています。

私の本能は私にオプション1を教えてくれますが、ベストプラクティスは何ですか?

  1. DbContext、移行、および関連するModelクラスを含むDbContextごとにMyApp.DataAccess。[ContextName]プロジェクトを作成します。最終的には、データベース以外のモデルクラスを表すためにMyApp.Modelプロジェクトが必要になります。

  2. DbContextと移行のみを含むDbContextごとにMyApp.DataAccess。[ContextName]プロジェクトを作成します。すべてのモデルクラス(フォルダーとサブ名前空間で編成)に引き続きMyApp.Modelを使用します。

  3. 何もしない-複数のDbContext、複数の移行などを備えた単一のMyApp.DataAccess。フォルダごとに編成された複数のデータベースのモデルを含む単一のMyApp.Model。

ベストプラクティス/理想的なアプローチは何ですか?

4

1 に答える 1

1

あなたの質問は「なぜ私は異なるDbContextを持っているべきなのか」で始まるべきです。ほとんどの場合、異なるコンテキストは異なるデータモデル、異なる(無関係の)責任を意味するため、可能な限り十分に分離する必要があります。これは、さまざまなアセンブリが実行されることを意味します。

于 2012-08-07T19:31:58.047 に答える