2

エンティティにコンテキストへの変更を保存する機能が必要ですか? または、その特定のエンティティに関連するビジネス ロジックはありますか? 例えば:

ActionResult ResetPassword(UserViewModel viewModel)
{
   var user = userCollection.GetUser(viewModel.Username);
   user.ResetPassword();
}

どこ:

class User : Entity
{
      public string Password{ get; set; }

      public ResetPassword()
      {
           Password = ""
           context.SaveChanges();
      }
}

エンティティはコンテキストへの参照を持っているため、これは少し奇妙です。これが機能するかどうか、またはこれが推奨されるかどうかはわかりません。しかし、変更の保存について心配する必要がないドメインで作業したい、より高いレベルなどで作業したいのですが、どうすればこれを達成できますか?

ありがとう!

アップデート

私は自分の例を更新しました - もう少し明確になることを願っています:)

4

3 に答える 3

2

ドメイン駆動設計によると、ドメイン オブジェクトには動作が必要です。

あなたは間違いなくこの本を読むべきです:

ここに画像の説明を入力

于 2012-08-17T12:40:16.227 に答える
1

エンティティをPOCO (Plain Old Class Objects、プロパティのみを持つクラス)として保持し、リポジトリに Insert / Update などのメソッドを実行させます。

エンティティを別のクラス ライブラリに保持し、別のリポジトリ実装で別の場所 (別のプロジェクトでも) で使用できます。

このチュートリアルでは Entity Framework を使用する MVC プロジェクトでリポジトリと作業単位のパターンを実行する方法がうまく説明されています。

于 2012-08-17T12:18:11.423 に答える
1

UnitOfWorkコントローラーとエンティティーの間のパターンを検討することをお勧めします。

http://martinfowler.com/eaaCatalog/unitOfWork.html

于 2012-08-17T12:18:23.613 に答える