我正在asp.net mvc3中设计一个项目,我在sql server中设计了我的数据库,添加我使用的是ado.net。
这是我的控制器动作
public ViewResult ProductFormulationIndex()
{
return View(db.ProductFormulation.ToList());
}
表示我想显示ProductFormulation表的所有字段。 这是我的表: -
这是我的productCategory表
在我的ProductFormulationIndex.cshtml中,我想显示ProductCategory Table的代码,而不仅仅是id。那么我应该在控制器或模型中做些什么呢? 您可能会建议与之相关的教程。 提前谢谢。
答案 0 :(得分:2)
您需要一个专为视图设计的视图模型。
在定义视图模型时,不应该考虑表格。 SQL表在视图中绝对没有意义。根据您需要显示哪些信息并相应地定义视图模型 因此,您可以定义视图模型,如:
public class ProductInformation
{
...
public string CategoryCode {get; set;}
...
}
或public Category ProductCategory
您可以使用AutoMapper在实际模型和已定义的视图模型之间进行转换。
答案 1 :(得分:0)
虽然我可能不会回答你的问题,但 正在触及一些有趣的观点。
我订阅了一个思想学派,说不应该查询对象模型,而是使用非规范化的轻微查询图层。
您可能会很快遇到延迟加载和投影问题:即您总是不需要相关数据,而总是需要所有字段。查询层可以很好地处理这个问题,因为使用非规范化模型意味着当您执行查询时,不需要进行N个连接来获取相关数据。您仍然需要收集数据,但实际查看查询的速度会快得多。
此外,获取非规范化模型的所有数据(通过加入)是一次性事件,而不是每次在前端显示相关数据时都这样做。
希望有道理:)