我申请了一份工作,他们要求我在面试之前创建一个小型 MVC 应用程序。他们拒绝了,说我使用了不良做法。请帮我弄清楚我做错了什么!
该任务涉及一个简单的数据库,Product
其负载为Sales
(一对多)。
我不得不:
- 显示总销售额的产品列表
- 显示并允许编辑和删除销售
我的解决方案:
创建一个左连接 SQL 视图,该视图使用一个组并加入到自身以获取销售总额。该表每个产品有一行
使用所有产品和销售数据创建一个内部连接的 SQL 视图。每次销售只有一排。
对于#1,我只是渲染了视图
对于 #2,我必须渲染产品详细信息和销售详细信息(在单个页面上一对多),因此我在控制器中执行了以下操作:
public ActionResult Details(int id)
{
// get details for the selected product
var product = db.ProductsWithTotals.Where(q => q.ProductId == id).Single();
ViewData["CatalogueNumber"] = product.CatalogueNumber;
ViewData["Title"] = product.Title;
ViewData["Artist"] = product.Artist;
ViewData["TotalSold"] = product.TotalSold;
ViewData["ProductId"] = product.ProductId;
// then pass its sales lines to the view
var salesLines = db.SalesLineDetails.Where(q => q.ProductId == id);
return View(salesLines);
}
如果有人能解释我如何能更优雅地做到这一点,将不胜感激。