Posso usare Entity Framework con un livello API SOAP su un database?

1

Abbiamo un database gerarchico presso la nostra istituzione che ha esposto un endpoint SOAP come unico modo per rendere le operazioni CRUD contro di esso. Siamo principalmente un negozio .NET Core. Sto cercando di concettualizzare l'aspetto dell'architettura di un'app che utilizza i WDSL. Il caso d'uso principale è quello di visualizzare le informazioni sull'account in modo piacevole e di poterle modificare con la logica aziendale dietro le operazioni CRUD.

Esiste un modo per utilizzare Entity Framework Core con un livello API SOAP per accedere al database? In caso contrario, qual è l'approccio consigliato quando si progetta una soluzione che non utilizza Entity Framework Core per le sue connessioni? Sto cercando di applicare l'approccio Clean Architecture a questa soluzione, ma tutti gli esempi che vedo utilizzano EF Core.

Ho iniziato il compito di memorizzare i risultati della chiamata WSDL principale, "getAccount", in un database SQL temporaneo all'avvio. Quindi potrei interrogare il database SQL come normale. Non ero sicuro se fosse una pratica standard o meno.

L'altro approccio sarebbe quello di mappare tutte le chiamate SOAP in un'interfaccia REST utilizzando l'API Web. Quindi potrei semplicemente chiamare l'API Web e mi farebbe chiamare SOAP. Ho iniziato a farlo manualmente, ma ho visto strumenti che possono "proxy" del livello SOAP. Sarebbe applicabile?

    
posta Brian Chambers 24.11.2018 - 22:05
fonte

1 risposta

2

EF è un ORM (Object-Relational Mapper). È usato per trasformare facilmente una struttura di database relazionale in oggetti .NET. Dato che non ti stai connettendo a un database (hai un'API SOAP), non vedo quale ruolo svolgerebbe EF qui.

La prima soluzione descrive la forzatura di un ruolo per EF creando un database non necessario di middle-man in cui non lo si era prima, solo così EF può essere utilizzato. Non ne ho mai sentito parlare prima e piangerei un po 'dentro se dovessi lavorare a un progetto con quel tipo di deviazione in atto.

La soluzione più semplice è semplicemente chiamare i servizi SOAP direttamente (sul lato server), che dovrebbe essere abbastanza facile da fare. Probabilmente avrai tutti gli stessi endpoint WebAPI in qualsiasi modo, è solo che il codice dietro di loro consumerà un servizio SOAP invece di un contesto EF.

    
risposta data 24.11.2018 - 23:56
fonte

Leggi altre domande sui tag