asp.net web api控制器接受POCO或通用数据

时间:2014-05-02 23:41:57

标签: orm asp.net-web-api poco restful-architecture asp.net-apicontroller

我是ASP.NET Web API的新手,现在已经研究了一段时间了。不可否认,我有决定瘫痪。我想为数据库中包含大约250个表的系统制作类似REST的API。它基本上是一个带有UI和数据访问层的2层系统,不使用业务对象或ORM。

我无法确定我的Web API控制器是否应该接受/返回:

a)名称/值对的IDictionary,我将其打包成sql参数并传递给数据访问层并返回一个序列化的ado.net数据表

b)强类型复杂对象(PO​​CO对象)。例如:帐户类,其所有属性都与数据库中的字段匹配。

如果我必须为系统中的每个表创建POCO类,那么除了打包数据并将其传递给我们的数据访问层之外,还有250多个类基本上什么都不做。

此外,似乎我需要为我希望通过Web Api公开的数据库中的每个表创建一个ApiController,因为每个路由只有GET,POST,PUT,DELETE?请帮忙,把头撞在桌子上。

1 个答案:

答案 0 :(得分:0)

请参阅以下答案:

1. **如果您的资源仅支持GET方法,则使用**"名称/值对的IDictionary" 即可。如果您希望用户发布或更新数据,您将如何验证数据?另外,如果你想添加HATEOAS,你会怎么做?在扩展方面,您将如何支持嵌套对象层次结构,如下所示:

public class Product 
{
    public int Id { get; set; }
    public string Name { get; set; }

    public string Category { get; set; }

    public decimal Price { get; set; }

    public IList<PurchaseDetail> PurchaseHistory { get; set; }
}

public class PurchaseDetail
{
    public int Id { get; set; }

    public DateTime PurchaseDate { get; set; }

    public decimal Cost { get; set; }
}

2. 通过定义不同的路由,每个资源可以有多个GET,POST等。更多来自此链接http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api