Quando ho iniziato a utilizzare DDD, ho creato i metodi Equals()
nelle mie entità che hanno confrontato l'ID dell'entità. Quindi due oggetti entità con lo stesso ID sarebbero considerati uguali.Le entità DDD dovrebbero essere confrontate per riferimento o per ID?
A un certo punto ho pensato a questo e ho scoperto che due entità in stati diversi non dovrebbero essere considerate uguali, anche quando descrivono la stessa cosa (cioè hanno lo stesso ID). Quindi ora utilizzo l'uguaglianza di riferimento per le mie entità.
Ho poi inciampò this answer da Mark Seemann, dove scrive
entità sono uguali se i loro ID uguali tra loro.
Ora, ovviamente, mi piacerebbe sapere quale approccio è migliore.
Modifica: Si noti che la domanda non è se avere due istanze della stessa entità allo stesso tempo è una buona idea. Sono consapevole che nella maggior parte delle situazioni probabilmente non lo è.
Perché hai la stessa entità in due stati diversi? –
Come può la stessa istanza essere in uno stato diverso allo stesso tempo? –
@ marianoc84 Ciò potrebbe accadere ad es. in un'applicazione desktop in cui gli oggetti in genere vivono più a lungo rispetto a un'app Web. L'utente può aggiornare un'entità in memoria e leggerlo di nuovo dal DB restituisce la vecchia versione. – theDmi