【问题标题】:Combining metadata from multiple sources合并来自多个来源的元数据
【发布时间】:2014-03-26 06:01:22
【问题描述】:

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

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

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

更新

我已经尝试了几种方法来使其工作,但无济于事。根据 Jay 的回答,目前无法在检索到元数据后从服务器更新元数据,所以如果并且直到发生变化(请参阅 breeze user voice issue),我只剩下以下方法之一

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

2 手动编写完整的元数据,这会起作用,但会使可维护性变得更加困难,并且手动编写与设计人员编写的大部分代码相同的代码似乎是错误的。

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

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

谢谢

【问题讨论】:

  • 这是一个合理的要求,而且我们最近越来越频繁地收到这个要求。我们现在正在研究一种允许您扩展客户端元数据的机制。目前还没有发布日期,但我们确实希望在接下来的几个月内发布。
  • 谢谢,这将使微风非常适合这种情况

标签: asp.net-web-api breeze


【解决方案1】:

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

所以问题是,你现在想做什么却做不到?

【讨论】:

  • 我遇到的问题是,我想对大多数表使用实体框架进行元数据和读/写,并为一些更复杂的业务对象使用 DTO 和命名保存。来自这两个来源的实体是相关的。理想情况下,我想使用一个微风管理器,它具有来自两个来源的元数据,并且在两者之间具有导航属性。它正在添加来自不同来源的实体之间的链接,这让我现在很难过
  • 我应该补充一点,我们首先将 EF 数据库与现有数据库一起使用。
猜你喜欢
  • 2014-05-05
  • 2017-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-27
  • 2014-11-21
  • 2016-04-29
相关资源
最近更新 更多