Ho un progetto (una piccola, concesso) che è cresciuto con nuove esigenze per i tipi spaziali. Ho deciso di vedere quanto sarebbe facile effettuare l'aggiornamento al framework di entità da LINQ a SQL.
Mi ci sono voluti non più di 30 minuti. Assicurati di disporre di un backup del controllo del codice sorgente prima di iniziare.
Install-Package EntityFramework -Version {pick one}
- Eliminare il vecchio
.dbml
file (s)
- generare un nuovo modello di impresa e aggiornare i riferimenti ai nuovi oggetti entità (questo è più facile se hai già un repository di base o qualcosa di avvolgimento LINQ a SQL). Ho seguito questa rotta (database first/designer) perché si trattava di un percorso di aggiornamento più semplice da LINQ a SQL. Puoi provare prima il codice se preferisci, ma ... YMMV.
- Aggiorna le stringhe di connessione. Entity Framework ha il proprio involucro strano attorno alle connessioni SQL tradizionali. Il mio è così, il tuo potrebbe sembrare diverso:
metadata=res://*/;provider=System.Data.SqlClient;provider connection string='Data Source=.\SQLEXPRESS; Initial Catalog=MyDataBase; Integrated Security=True'
- Correggere gli errori di compilazione. La maggior parte di questi saranno differenze in
Insert/DeleteOnSubmit
e EF Add/Remove
o Add/RemoveRange
. Gli ambiti di transazione potrebbero funzionare in modo diverso (considerare l'utilizzo di context.Database.BeginTransaction
invece degli ambiti di transazione).
- Ricostruirlo una volta risolti gli errori di compilazione.
Questo è tutto.Era molto più facile di quanto mi aspettassi e ora posso usare i tipi spaziali senza trucchi.
Grazie, questo progetto è appena iniziato. Sarei meglio passare a un diverso framework di mappatura delle tabelle (orm) che supporta il tipo di geografia? Ci sono? – Chin
@Chin - controlla l'articolo in cui ci sono dei problemi, spero che funzionerà per te - che non è necessario spostarsi su un altro orm –