2010-03-09 7 views

risposta

4

EF4 supporta qualunque sia il server back-end supporta:

  • colonne IDENTITY o colonne GUID con i valori di default (newid(), NEWSEQUENTIALID()) in SQL Server
  • sequenze in Oracle
  • qualunque altro meccanismo che il database di destinazione potrebbe fornire

EF4 stesso non ha alcun supporto integrato per generatori di alcun tipo, per quanto ne so.

Non sono sicuro che la responsabilità dell'ORM sia una buona idea, abbastanza onestamente. Questo dovrebbe essere lasciato al negozio di backend per gestire, a mio parere.

Tuttavia, non dovresti avere problemi nell'implementare il tuo generatore di ID personalizzato nel codice .NET e inserirlo in EF4, se desideri farlo.

+2

Apprezzo l'informazione sul fatto che EF4 non supporta i generatori di ID. Tuttavia -1 per sorvolare questa carenza con un'opinione disinformata. In effetti, la generazione di ID lato client è l'unico modo per implementare in modo efficace sistemi disconnessi, distribuiti e/o di sincronizzazione. Avere il datastore generare identificatori è spesso un punto di serializzazione non necessario, e talvolta impossibile. – joshperry

+0

D'accordo con joshperry. Inoltre, la generazione di ID lato server rende impossibile implementare il batching delle istruzioni. Con il batching, gli inserimenti massicci tramite ORM possono essere quasi altrettanto veloci del puro codice ADO.NET. –

Problemi correlati