我申请了一份工作,他们要求我在面试之前创建一个小型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);
}
如果有人能够解释我如何更优雅地完成这项任务,那将非常感激。
答案 0 :(得分:0)
我个人唯一不同的做法是:
但是,这里没什么不好的,我同意这可能不适合工作。如果他们不想说他们不喜欢你的面孔,人们也往往会弄清楚原因。
/耸肩