[HttpGet("items")] public IActionResult GetMenuItems() { var items = _menuService.GetMenuItems(); return Ok(items); }
[HttpPost("order")] public IActionResult PlaceOrder([FromBody] OrderRequest orderRequest) { var result = _menuService.PlaceOrder(orderRequest); return Ok(result); } }
[HttpGet("items")] public IActionResult GetMenuItems() { var items = _menuService.GetMenuItems(); return Ok(items); // 返回菜單項目 }
[HttpPost("order")] public IActionResult PlaceOrder([FromBody] OrderRequest orderRequest) { var result = _menuService.PlaceOrder(orderRequest); return result ? Ok("Order placed successfully") : BadRequest("Failed to place order"); } }
總結
ASP.NET:就像是餐廳的點餐系統,負責接收顧客的點餐請求和展示菜單。
Dapper:就像是廚房的工作流程,快速處理資料庫的查詢和更新。
顧客、點餐:顧客向前台服務員(ASP.NET 控制器)點餐。
廚房、製作菜品:廚房(資料庫)使用 Dapper 準備菜品並回應前台服務員。
這個比喻幫助理解 ASP.NET 和 Dapper 如何協同工作,處理點餐請求和數據交互。
那如果再細分到自己寫的 CONTROLLER呢
當然可以!我們可以使用您提供的程式結構,將餐廳的比喻應用到 ASP.NET Core + Dapper 的實際程式碼中。這裡是如何用您給的程式結構來比喻這些概念:
public ServiceResult<List<SYSM001Q_OutputVo>> QueryDetailResult(SYSM001Q_InputVo inputVo) { var sql = "SELECT * FROM SystemParameters WHERE ..."; // SQL 查詢語句 var result = _dbConnection.Query<SYSM001Q_OutputVo>(sql, inputVo); returnnew ServiceResult<List<SYSM001Q_OutputVo>> { result = result.ToList(), status = CommonEnum.ACTION_STATUS.SUCCESS }; }
public ServiceResult<int> EditResult(List<SYSM001E_TotVo> inputVo) { var sql = "UPDATE SystemParameters SET ... WHERE ..."; // SQL 更新語句 var rowsAffected = _dbConnection.Execute(sql, inputVo); returnnew ServiceResult<int> { result = rowsAffected, status = CommonEnum.ACTION_STATUS.SUCCESS }; } }
public ServiceResult<List<SubSyst_OutputVo>> QuerySubSystemResult(SubSyst_InputVo inputVo) { var sql = "SELECT * FROM SubSystem WHERE ..."; // SQL 查詢語句 var result = _dbConnection.Query<SubSyst_OutputVo>(sql, inputVo); returnnew ServiceResult<List<SubSyst_OutputVo>> { result = result.ToList(), status = CommonEnum.ACTION_STATUS.SUCCESS }; } }
3. Dapper(廚房的設備和食材)
Dapper 負責與資料庫進行交互,像是廚房中的設備和食材,幫助廚房完成菜品的準備。
Dapper 操作示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
// 在 SYSM001Service 中的查詢和更新操作 public ServiceResult<List<SYSM001Q_OutputVo>> QueryDetailResult(SYSM001Q_InputVo inputVo) { var sql = "SELECT * FROM SystemParameters WHERE ..."; var result = _dbConnection.Query<SYSM001Q_OutputVo>(sql, inputVo); returnnew ServiceResult<List<SYSM001Q_OutputVo>> { result = result.ToList(), status = CommonEnum.ACTION_STATUS.SUCCESS }; }
public ServiceResult<int> EditResult(List<SYSM001E_TotVo> inputVo) { var sql = "UPDATE SystemParameters SET ... WHERE ..."; var rowsAffected = _dbConnection.Execute(sql, inputVo); returnnew ServiceResult<int> { result = rowsAffected, status = CommonEnum.ACTION_STATUS.SUCCESS }; }
總結
Controller(服務員):接收顧客的點餐請求,將其傳遞給廚房,並將結果帶回給顧客。
Service 層(廚房):處理實際的業務邏輯和資料庫操作。
Dapper(設備和食材):提供高效的資料庫存取和操作功能。
這樣的比喻有助於理解 ASP.NET Core 中 Controller、Service 層和 Dapper 如何協作,像餐廳中的服務員、廚房和廚房設備如何協作來滿足顧客的需求。