私のアプリケーションでは、データベーステーブルの束の数をチェックするチェックがあります。これらのCOUNTSのそれぞれが特定のしきい値を超えている場合は、プロパティーをアクティブとして設定します。ここでは、ユーザがこのコードを再利用できるようにするにはどうすればよいですか?
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create([Bind(Include = "ID,RoomTypeID,Description")] Room room, int propertyId)
{
if (ModelState.IsValid)
{
room.ID = Guid.NewGuid();
room.DateCreated = DateTime.Now;
room.PropertyID = propertyId;
db.Rooms.Add(room);
await db.SaveChangesAsync();
var roomCount = db.Rooms.Where(r => r.PropertyID == propertyId).Count();
var rateCount = db.Rates.Where(r => r.PropertyID == propertyId).Count();
var imageCount = db.PropertyImage.Where(r => r.PropertyID == propertyId).Count();
if(roomCount >= 3 && rateCount >= 3 && imageCount >= 3)
{
//Set Property as ACTIVE
}
return RedirectToAction("Index");
}
私が持っている問題部屋の情報を追加して、コントローラの例です、私はこのチェックを実行したいということである(3つのデータベース数と文の「もし」)の全体の束にコントローラ。私はすべてのアクションのためにすべてのコントローラでこの設定を複製する必要はありません。また、このチェックは変更される可能性がありますので、私はちょうど1つの場所でそれを更新したいと思います。
どうすればこのようにするのが最適でしょうか?私はヘルパークラスのいくつかの並べ替えを作成する必要がありますか?
ありがとうございました
コントローラクラスからしかデータベースにアクセスできないという印象を受けましたか?私はエンティティフレームワークを使用しているので、 'Helper'という正しい用語がありますので、私はGoogleでこの種のチュートリアルがあるかどうか確認できますか? – Gavin5511
Nティアアーキテクチャーには、その背後にある理論を理解するために少し読んでいます。あなたの特定のニーズに即して、シンプルに保ち、 "ヘルパー"や "ユーティリティ"の用語を使用するのはおそらく問題ありません。 –
また、コントローラの外部のデータベースにアクセスすることも可能です。たとえば、Webアプリケーションプロジェクトとはまったく異なるプロジェクトからデータベースにアクセスする方が好きな人もいます。 –