angin odata dan api web normal

Saya perlu memiliki dua entitasManager dalam aplikasi sudut menggunakan breese sehingga saya bisa mendapatkan data dari dua layanan berbeda. Satu layanan adalah OData API dan yang lainnya adalah api web angin standar (api web asp.net menggunakan pengontrol angin).

Konteks OData saya berfungsi dengan baik tetapi ketika saya membuat yang standar, properti uriBuilder masih berupa odata dan ketika manajer ini mencoba mendapatkan metedata, ia mengawali nilai $metadata di akhir url.

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

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

apakah ada yang tahu apakah mungkin untuk memiliki kedua pengaturan tersebut?


person Anthony Joanes    schedule 15.03.2016    source sumber


Jawaban (1)


Saya telah berhasil membuatnya berfungsi dan triknya adalah menggunakan DataService untuk membangun manajer entitas. Artinya keduanya adalah objek terpisah dengan konfigurasinya sendiri dan Anda memang dapat menggunakan OData dan WebApi secara bersamaan.

Inilah cara saya melakukannya:

Buat objek layanan data

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

Buat instance manajer entitas menggunakan layanan data ini

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

Anda kemudian dapat menggunakan pola yang sama untuk berapa pun yang Anda perlukan dan cukup mengubah nama adaptor. Ada beberapa konfigurasi tambahan tetapi semuanya standar, jadi saya belum menyertakan semuanya di sini.

Saya kemudian membuat DataContext untuk setiap EntityManager untuk merangkumnya dan saya kemudian dapat memasukkan konteks yang saya perlukan saat dan ketika saya membutuhkannya.

person Anthony Joanes    schedule 16.03.2016