将Breeze.js与业务服务(SOA)一起使用?

时间:2013-07-23 17:07:55

标签: breeze hottowel

我刚开始使用Hot Towel,我想将现有的(相当大的)系统从使用旧的MVC2转换为一个不错的SPA。 我需要重用我们的服务,为我们处理所有存储库工作。我可能能够创建一些用于获取实体的IQueryable方法,但需要通过旧方法进行保存。 正如我所说,我刚开始,所以请原谅我,如果这是过分的菜鸟。

如何使我的BreezeController与我的服务对话而不是样本中的datacontext?我现在最大的障碍是元数据。

谢谢,

的Morten

1 个答案:

答案 0 :(得分:0)

Breeze不需要DbContext,但正如您在没有DbContext的情况下发现的那样,您需要明确地描述Breeze元数据。

Breeze zip中的 NoDb 示例有一个示例,说明如何执行此操作。请注意,您可以通过针对MetadataStore的方法调用直接在客户端上定义元数据,也可以从服务器上的 Metadata()方法返回Breeze元数据格式的单个json对象。元数据格式在网站上的Breeze文档中有更详细的描述。

一种方法是在单独的文档中定义服务器上的元数据,在下面的示例中为“metadata.json”,然后返回它。

[HttpGet]
public String Metadata() {
  var folder = Path.Combine(HttpRuntime.AppDomainAppPath, "App_Data");
  var fileName = Path.Combine(folder, "metadata.json");
  var jsonMetadata = File.ReadAllText(fileName);
  return jsonMetadata;
}