0
在我的應用程序中,我有一個檢查,它檢查一堆數據庫表的COUNT。如果這些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個數據庫計數和的「如果」語句)上一大堆控制器。我不想在每個控制器上爲每個動作都複製這個配置。此外,這項檢查可能容易改變,所以我想在一個地方更新它。
我最好如何去做這件事?我應該創建某種幫助類嗎?
謝謝
我是(顯然是錯誤的)的印象,你只能從控制器類訪問數據庫?我正在使用實體框架,'助手'是正確的術語,所以我可以谷歌,看看有沒有關於這種事情的任何教程? – Gavin5511
我會稍微閱讀一下N層架構來理解它背後的理論。爲了您現在的具體需求,保持簡單並使用「助手」或「實用程序」術語可能沒有問題。 –
另外,訪問控制器之外的數據庫是完全可以接受的。例如,有些人更喜歡只從與Web應用程序項目完全不同的項目訪問數據庫。 –