2013-07-23 5 views
0

Я только начинаю с Hot Towel, и я хочу преобразовать нашу существующую (довольно большую) систему из старого MVC2 в хороший SPA. Мне нужно повторно использовать наши службы, которые обрабатывают все хранилища для нас. Я могу создать некоторые методы IQueryable для получения сущностей, но сохранение должно проходить через старые методы. Как я уже сказал, я только начинаю, так что простите меня, если это слишком много.Использование Breeze.js с бизнес-сервисами (SOA)?

Как я могу заставить свой BreezeController разговаривать со своими службами вместо datacontext из образцов? Мое самое большое препятствие сейчас - это метаданные.

Спасибо,

Morten

ответ

0

Breeze не требует DbContext, но, как вы обнаружили без одного вам нужно будет описывать метаданные Breeze в явном виде.

NoDb Образец в бриз-молнии имеет пример того, как это сделать. Обратите внимание, что вы можете либо определить метаданные непосредственно на клиенте с помощью вызовов методов против MetadataStore, либо вы можете вернуть один json-объект в формате метаданных Breeze из метода Metadata() на вашем сервере. Формат метаданных более подробно описан в документах 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; 
} 
+0

Я посмотрел образец NoDb, но я не уверен, что такое формат этих метаданных. Есть ли где-нибудь документ, который описывает это правильно? – Morten

Смежные вопросы