从WebAPI获取Master-Detail表

时间:2013-09-16 14:31:22

标签: javascript angularjs asp.net-web-api foreign-key-relationship master-detail

我有一个包含两个表的数据库。它们具有外键关系(因此它们具有经典的主 - 细节结构)。

我想在浏览器中使用javascript(一个特定的Angular应用程序)调用ASP.NET MVC WebAPI来获取这两个表的全部数据。在JavaScript中,我希望使用适当的关系将数据重建为对象(以便详细对象具有对正确主数据的引用)

实施此最简洁的方法是什么?

一种选择是为主服务器调用REST API,遍历结果并进行REST调用以获取每个主服务器的详细记录。 这感觉有点蛮力,显然会导致很多REST调用。

我可以构建一个易于反序列化为JavaScript中正确的对象结构的WebAPI调用吗?这是适当的RESTful吗?

1 个答案:

答案 0 :(得分:1)

我会避免为每个细节进行REST调用的繁琐实现。

如果您正在使用实体框架,那么获取一个块中的所有数据就像这样简单(如果您在实体框架数据库上下文中禁用了延迟加载,则需要包含):

public IEnumerable<Master> Get()
{
   return _context.Masters.Include(m ->m.Details).ToList();
}

从angularjs中,您可以使用$ resource的查询方法轻松获取此内容。