组合来自多个来源的元数据

时间:2014-03-14 10:26:47

标签: asp.net-web-api breeze

在使用breeze的SPA应用程序中,我如何将来自多个来源的元数据用于相关数据,以便我可以在客户端的1个管理器中使用它们。例如,我可能有以下

  • 来自WebAPI控制器的实体框架元数据(例如,帐户)
  • 来自DTO的自定义元数据(例如发票)
  • 来自第三方服务的数据,其中包含从客户端元数据提供的元数据(例如,发票传输结果)

在每种情况下,数据都有相关的属性,所以我可能希望能够使用Account.Transactions.TransmissionResults

更新

我尝试了几种方法让它工作但无济于事。根据Jay的回答,目前无法在检索到服务器后更新元数据,因此,如果及之前发生变化(请参阅breeze user voice issue),我将采用以下方法之一

1从实体框架中检索服务器中的元数据,并在客户端上添加元数据以添加额外的实体。这在一定程度上起作用但我无法将从客户端添加的实体类型的导航属性添加到从服务器检索的实体类型,因为我无法将外键关联添加到从服务器检索的实体,再次回到需要修改元数据在检索之后。

2手工编写完整的元数据,这样可以工作但是使得可维护性变得更加困难,而且手动编写的设计代码大多与设计人员编写的相同。

3按照文档中的描述生成Entity Framework中的大部分代码,然后再更新它以添加自定义实体。再次出现与选项2类似的问题,看起来很糟糕。

其他人尝试过类似的东西吗?有什么我想念的东西,我可能是,我只是从微风和js开始。

由于

1 个答案:

答案 0 :(得分:0)

微风EntityManager可以包含来自任意数量的DataService端点的元数据,您可以随时在客户端上手动添加元数据(新的EntityTypes)。目前唯一的限制是,一旦您拥有特定服务的元数据,您就无法对其进行更改。 (我们正在考虑审查最后一项限制)。

所以问题是,你现在不能做什么呢?