бриз одата и обычный веб-апи

Мне нужно иметь два EntityManagers в приложении angular, используя Breese, чтобы я мог получать данные из двух разных служб. Одна служба представляет собой API-интерфейс OData, а другая — стандартный веб-API breeze (веб-API asp.net с использованием контроллеров breeze).

Мой контекст OData работает нормально, но когда я создаю стандартный, свойство uriBuilder по-прежнему является odata, и когда этот менеджер пытается получить метаданные, он добавляет значение $metadata в конец URL-адреса.

 breeze.config.initializeAdapterInstance('modelLibrary', 'backingStore', true);
            breeze.NamingConvention.camelCase.setAsDefault();

            var serviceName = common.testApiUrl;
            var metadataStore = createMetadataStore();

кто-нибудь знает, возможно ли вообще иметь две установки?


person Anthony Joanes    schedule 15.03.2016    source источник


Ответы (1)


Мне удалось заставить это работать, и хитрость заключается в том, чтобы использовать DataService для создания менеджеров сущностей. Это означает, что это отдельные объекты со своей собственной конфигурацией, и вы действительно можете использовать OData и WebApi вместе.

Вот как я это сделал:

Создание объекта службы данных

var dataService = new breeze.DataService({
                serviceName: myConfig.testApiUrl,
                hasServerMetadata: true,
                adapterName: 'WebApi'
            });

Создайте экземпляр диспетчера сущностей, используя эту службу данных

 function newManager() {
                var mgr = new breeze.EntityManager({
                    dataService: dataService
                });
                return mgr;
            }

Затем вы можете использовать этот же шаблон для любого количества адаптеров, которое вам нужно, и просто изменить имя адаптера. Есть некоторая дополнительная конфигурация, но все стандартные вещи, поэтому я не включил их все здесь.

Затем я создаю DataContext для каждого EntityManager, чтобы инкапсулировать их, и затем я могу просто вводить контекст, который мне нужен, как и когда он мне нужен.

person Anthony Joanes    schedule 16.03.2016