我有一个模型类:
public class Service
{
public int ID { get; set; }
public string description { get; set; }
public decimal price { get; set; }
public decimal cost { get; set; }
public decimal manDay { get; set; }
public decimal FTE{ get; set; }
}
我还有一个简单的控制器,它将遍历整个数据库表,并根据输入参数Services
返回一个属性之一的 JSON 表:Service
public JsonResult _columns(int attributeCode)
{
IQueryable<Service> services = db.Services.AsQueryable();
MyJSONContainer jcontainer = new MyJSONContainer();
switch(attributeCode)
{
case 0:
foreach(Service s in services)
jcontainer.addEntry(s.description, s.price);
return Json(jcontainer);
case 1:
foreach(Service s in services)
jcontainer.addEntry(s.description, s.cost);
return Json(jcontainer);
case 2:
foreach(Service s in services)
jcontainer.addEntry(s.description, s.manDay);
return Json(jcontainer);
default:
foreach(Service s in services)
jcontainer.addEntry(s.description, s.FTE);
return Json(jcontainer);
}
}
现在这段代码运行良好,但不是很干,特别是因为我将来可能会在foreach
循环中增加更多的复杂性。
我很想知道在 DRY 设计模式方面拥有更多专业知识的人将如何编写这个函数。
谢谢