2009-06-22 10 views
10

Mi sono recentemente trovato più negativo riguardo EF e non posso fare a meno di chiedermi se il vero problema è la mia conoscenza sull'argomento. Ho visto molti esempi semplici/artificiali di utilizzo di EF, specialmente in congiunzione con MVC, ma non ho ancora trovato esempi reali di utilizzo di EF e sfruttamento di tutte le funzionalità. Inoltre, ogni tentativo che ho fatto finora di usare EF sembra essere stato cancellato dai deficit del progettista VS2008 (come il supporto per campi/colonne generati dal server) o dalla necessità di fornire risme di codice aggiuntivo per supportare l'aggiornamento i dati tornano alla fonte (dove mi aspettavo che questo fosse supportato da EF).EF nella vita reale, voglio credere (Qualcuno ha buone indicazioni su EF 1.0 (3.5) o 4.0 esempi banali?)

Per poter prendere veramente in considerazione questo aspetto e prendere una decisione più istruita, chiunque può indicarmi alcuni esempi di utilizzo di EF, ad esempio con ASP.NET, in una situazione reale, ad esempio il recupero di alcuni relativi dati dall'origine sottostante, aggiornando tali dati e quindi persistendo tali modifiche all'origine. In ogni esempio che puoi fornire, vorrei essere in grado di vedere solo le modifiche apportate dall'utente che viene rispedito all'origine piuttosto che semplicemente sovrascrivere la versione corrente.

Vorrei anche vedere alcuni esempi di utilizzo di EF in una situazione di servizio Web/WCF in cui di nuovo un'entità viene richiamata con oggetti correlati e tutte le modifiche apportate vengono riportate all'archivio dati.

Preferirei quanti più esempi possibile usare EF 1.0 (3.5) in quanto questa è la versione attualmente disponibile per uso produttivo, ma sarei interessato anche a qualsiasi esempio di EF 4.0 che provi che le cose vadano migliorare.

Voglio credere che EF è la strada da seguire. Mi piace particolarmente l'idea di trattare un database come se si trattasse semplicemente di un gruppo di oggetti correlati (e ho spesso eseguito il rollover delle mie versioni in passato), ma sembra che EF sia andato così lontano. Ho un paio di nuovi progetti all'orizzonte che coinvolgono database piuttosto grandi e al momento non posso giustificare l'uso di EF anche se mi piacerebbe davvero.

+1

Non ho ancora lavorato con EF, ma non consiglio di far rotolare il tuo ORM, a meno che tu non abbia intenzione di imparare di più sugli ORM. Ho usato Linq2Sql (che molte persone dicono morto grazie a Entity Framework) ed è molto carino per le mie esigenze. –

+0

Suggerirei di lavorarci un po 'per ottenere una vera domanda che può avere risposte o passare alla wiki della comunità. Penso che la vera domanda qui sia "Qualcuno ha buoni suggerimenti per esempi non banali di EF 1.0 (3.5) o 4.0?" –

+0

Dan, non mi sono mai passato per mano gli ORM come classi dedicate a rotazione manuale che rappresentano i dati della tabella e forniscono la funzionalità CRUD. –

risposta

1

Penso che ci vorrà un po 'prima che EF raggiunga Hibernate.

+0

Mi rendo conto che Hibernate è più consolidato, anche se la recente esposizione ad esso ha evidenziato che anche questo ha delle stranezze! Sono particolarmente interessato a indagare su EF in modo più dettagliato al momento in quanto sono sicuro che deve essere più capace di me! –

+0

Ho scoperto che la maggior parte delle sue peculiarità più serie possono essere superate con l'uso intelligente delle visualizzazioni. Mi dispiace, ma non sono in grado di aiutarti con la tua domanda specifica. :( –

+0

Grazie comunque a Spencer. Come ho notato di seguito, alcuni dei miei colleghi stanno già lottando con NHibernate, quindi dirò loro di usare Google con le viste. –

0

Ho chiesto una domanda simile here specifica per ASP.NET MVC. Ho praticamente la stessa domanda che fai in quanto non ho visto molti esempi "reali" di come EF funziona con uno scenario web .NET.

+0

Sì, ho visto la domanda e sembra che non ne abbiate ricevute molte risponde a entrambi, anche se il progetto di riferimento EF4 menzionato da Andrew Peters (sotto) sembra essere un riferimento a lungo termine (ancora nulla per EF1 però) –

1

Impossibile fornire il codice, ma può dirvi la mia esperienza. Recentemente ho provato linq a SQL in un vero progetto. Non era male, ma non si adattava al design basato sul dominio (o ero semplicemente troppo stupido per farlo sembrare come vorrei).

Linq provato a entità. In breve - sprecato ~ 2 giorni. Ho abbandonato la mia speranza dopo le prime volte che ho seguito le mappature di editing.

Attaccato con NHibernate (perché non genera nulla). Ma tutti sono delusi al supporto sproc.

Forse la prossima versione sarà migliore. Al momento sembra maldestro per me.

+2

Alcuni miei colleghi hanno preso in mano un progetto che riguarda NHibernate e tutto ciò che ho sentito da loro Infatti, sembra essere diventato così cattivo per loro che quando è stato chiesto di aggiungere un nuovo sottosistema al progetto hanno optato per implementarlo in EF1! Ora tutto ciò che sento è piangere e lamentarsi! Penso che il mio manzo personale con NHibernate è la mancanza di supporto del designer e la successiva necessità di generare a mano tutti gli oggetti con il mapping XML. Mi viene anche detto (dai miei colleghi sopra) che il supporto per l'eliminazione è molto scarso. –

+1

Preferisco la scrittura a mano di tutti gli oggetti causa del Domain Driven Design (a quanto pare non ci sono generatori di codici che potrebbero generare con successo tutta la logica di business), quindi - è una caratteristica più simile a NHibernate che non generi nulla. La mappatura avviene tramite Fluent NHibernate (è intuitivo, fortemente tipizzato). La modalità di progettazione di qualsiasi cosa è una cattiva idea in generale. Non ho ancora avuto problemi con l'eliminazione (ma forse è probabile che accada, difficile dirlo). –

0

Sto cercando informazioni su EF me stesso, e quando diretto a qui ho trovato la maggior parte delle risposte qui datate dopo il rilascio di EF4 CTP4.

Potrebbe essere il caso che qualcuno leggendo la mia risposta dirà che presenta nel CTP4 sono datati e, quindi io suggerirei a chiunque cerchi di attuare Entity Framework per davvero dovrebbe dare un'occhiata al ADO.net Team Blog e controllare il ultime notizie