MVC 4 Web.Api模型 - 显示FK数据

时间:2013-07-09 17:55:42

标签: entity-framework asp.net-mvc-4 model viewmodel asp.net-web-api

我是一个新手试图了解适当的模型场景。我正在使用最新的MVC 4和web.api以及DB-first EF。在示例场景中,我有一个State实体,City实体(w / State FK),Address实体(w / City FK)和Person实体(w / Address FK)。当我列出Persons实体时,我想在Person实体中显示数据以及城市名称(通过FK)和州名称(通过FK)。看来特定的ViewModel是合适的,但是使用Web.Api,是不是真的只应该有特定的实体模型而不是viewmodel?

1 个答案:

答案 0 :(得分:0)

  

“但是使用Web.Api,并不是真的应该有   特定的实体模型而不是视图模型?“

如果要为网格发回平面视图,可以创建一个具有要在网格上显示的属性的类(模型),使用通过EF检索的数据填充模型并发送该模型(或模型集合)作为API响应。

也许像

public class GridRow
{
    public string PersonName { get; set; }
    public string AddressLine1 { get; set; }
    public string AddressLine2 { get; set; }
    public string StateName { get; set; }
}

然后,如果我们认为你的API正在返回什么资源 - 它不再真正返回Person或State(尽管它使用了那些数据)它实际上正在返回GridData。所以你的GridDataController可能有

public IEnumerable<GridRow> Get(){ //get and return the collection to be consumed by the grid }

无论如何我就是这样做的。