0

我是一个新手,试图了解适当的模型场景。我正在使用最新的 MVC 4 和 web.api 以及 DB-first EF。在示例场景中,我有一个州实体、城市实体(带州 FK)、地址实体(带城市 FK)和个人实体(带地址 FK)。当我列出 Persons 实体时,我想在 Person 实体中显示数据以及城市名称(通过 FK)和州名(通过 FK)。似乎特定的 ViewModel 是合适的,但是使用 Web.Api,难道真的只应该有特定的实体模型而不是视图模型吗?

4

1 回答 1

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 }

无论如何我都会这样做。

于 2013-07-11T08:49:06.930 回答