131 messaggi dal 06 giugno 2011
ciao, si quella prova già l'avevo fatta disintallando ef da nuget e aggiungendo manualmente EntityFramework.ddl EntityFramework.SqlServer.ddl.

ma mi da sempre lo stesso errore

Modifica:
ho installato questo pacchetto nuget

https://www.nuget.org/packages/EntityFrameworkDbModelStore
ora compila e sia avvia il prgetto di prova, adesso volevo sapere come configurare la classe MyContextConfiguration.
Modificato da brux88 il 03 ottobre 2016 09.23 -
131 messaggi dal 06 giugno 2011
ciao alla fine sto optando per partizionare il mio dominio ancora sto studiando come strutturarlo in sottodomini, penso di creare i seguenti sottodomini( o context) riassumo solo quelli principali poi sarrano sicuramente di piu:
ContabilitaContext (Prima Nota,Registri Iva,Liquidazione,Saldi Schede Contabili)
OrdiniContext (Ordini Cliente,Ordini Fornitore,Lista Ordini etc...)
ProduzioneContext (Distinta Base, Produzione)
GestioneMerceContext (Fatture Vendite,Fatture Acquisto, Magazzino Vendite,Magazzino Acquisto)
GestioneMaterialiContext (Fatture Vendite Materiali,Fatture Acquisto Materiali, Magazzino Vendite Materiali,Magazzino Acquisto Materiali)
TabelleGeneraliContext (Articoli,Clienti,Fornitori,CausaliContabili,Conti,Iva, e tutte quelle tabelle di anagrafica generale)

Ogni contesto però sfrutta anche altre tabelle di altri contesti tipo:

ContabilitaContext -> Causali Contabili, Conti,Iva (TabelleGeneraliContext)

OrdiniContext -> Clienti,Fornitori ,Causali Contabili,Iva (TabelleGeneraliContext), ma ho anche la possibilità di crearmi una fattura direttamente dall'ordine quindi mi servirà anche collegarmi con (GestioneMerceContext )



quindi non capisco se devo cambiare i sottodomini oppure c'è un modo per strutturare questo bounded context.

Utilizzando Ef io creao una classe per il context mettento all interno tutti i dbset corrispondenti alle tabelle che voglio mappare nel mio db. Ma nei contesti che utilizzano le stesse Tabelle Tipo Clienti come dovrei gestirle, e qui che non riesco bene a capire....
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,


Ma nei contesti che utilizzano le stesse Tabelle Tipo Clienti come dovrei gestirle, e qui che non riesco bene a capire....

Crei un'altra entità che rimappa a quella tabella ma che possiede solo le proprietà usate in quel particolare contesto.

In alternativa, se pensi che sia la strategia migliore, puoi non creare affatto un nuovo ordine da quel contesto ma limitarti ad immettere un comando in un service bus tipo Rebus. Il contesto che si occupa di creare gli ordini, riceverà questo comando e creerà l'ordine. Poi, a sua volta, immetterà nel bus un evento OrdineCreato affinché dei gestori possano gestire i side-effects, tipo inviare una mail al cliente per notificarlo che l'ordine è stato creato.
https://www.infoq.com/news/2014/11/sharing-data-bounded-contexts

ciao,
Moreno
Modificato da BrightSoul il 11 dicembre 2016 12.12 -

Enjoy learning and just keep making
131 messaggi dal 06 giugno 2011
grazie per la risposta quindi per ogni tabelle da condividere dovrei riscrivere la stessa classe Clienti.cs poi da ignorare nel modelcreate per non ricrearla nel db(visto che gia esiste), con le stesse proprietà, se poi devo aggiungere una proprietà dovrei aggiungerla ad entrambe le classi giusto?


oppure utilizzare l'altro metodo da te suggerito...
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,


dovrei riscrivere la stessa classe Clienti.cs

E' difficile che sia la stessa identica classe. Ogni bounded context quasi sempre ha un proprio concetto di "Cliente".
  • Per il reparto contabilità, un "cliente" è una partita iva o codice fiscale, con l'indirizzo della persona fisica o giuridica;
  • Per il customer care, un "cliente" è un nome e un recapito;
  • Per il reparto consegne, un "cliente" è un indirizzo di spedizione.



poi da ignorare nel modelcreate per non ricrearla nel db(visto che gia esiste)

Mappare una classe nell'onmodelcreating non equivale a ricrearla nel db. La strategia di inizializzazione del database la controlli separatamente con un initializer. Puoi impostare l'initializer a null ed Entity Framework non compirà alcuna azione di creazione tabelle.

Se vuoi avvalerti delle code first migrations puoi farlo, ma dovrai mantenere il mega-dbcontext che avevi prima ed usarlo al solo scopo di produrre lo script di aggiornamento dello schema del db.
https://www.infoq.com/news/2013/02/ddd-bounded-context-large-domain


oppure utilizzare l'altro metodo da te suggerito...

Puoi anche fare un mix: nella maggior parte dei bounded context avrai un repository di Cliente che ti permette solo di leggere. Ovviamente quel "Cliente" sarà una classe che ha una forma diversa da contesto a contesto, così come ne abbiamo parlato prima. Quando è il momento di creare un cliente, puoi immettere un comando nel service bus affinché il contesto dell'anagrafica clienti possa creare l'entità.

Comunque, questi che facciamo nel forum sono scambi di poco valore. Dovresti contattare un consulente che possa venire lì a studiare il tuo modello e che ti possa guidare in questo redesign con cognizione di causa.

ciao,
Moreno

Enjoy learning and just keep making
131 messaggi dal 06 giugno 2011
si esatto, pero creando un contesto master in cui ci saranno tutti i miei dbset (per gestire le migrazioni), poi nell 'app dovrò utilizzare i vari sottodomini(mini context) giusto? pero io a me interessa sopratutto che all'avvio dell app non perda tutto il tempo per inizializzarsi il contesto di 300 entità. facendo cosi utilizzando un master context non è la stessa cosa, all 'avvio non si deve inizializzare( il master context) perdendo tutto il tempo


p.c.: qualcuno della vostra community fa consulenza esterna ? ovviamente conoscendo le teconologie che sto utilizzando per non stravolgere tutto il software
Modificato da brux88 il 13 dicembre 2016 09.11 -
11.886 messaggi dal 09 febbraio 2002
Contributi

facendo cosi utilizzando un master context non è la stessa cosa

No no, il "master context" non va incluso nell'applicazione. Lo tieni in un progetto locale e lo usi soltanto per generarti lo script di aggiornamento T-SQL dello schema grazie alle code-first migrations.

Poi, quando fai il deploy di una nuova versione, eseguirai quello script durante l'installazione dell'aggiornamento.



p.c.: qualcuno della vostra community fa consulenza esterna ?

Prova a sentire Daniele Bochicchio, c'è un modulo apposito per le consulenze.
http://corsi.aspitalia.com/modulo.aspx

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.