Domanda

Ho usato Entity Framework 4.0 per la creazione del mio livello di accesso ai dati. Poi ho scoperto che il mio livello di logica aziendale ha gli stessi oggetti di Dal ma con alcune estensioni (cioè più proprietà, alcune funzioni e convalida dei dati sui setter ...).

Avevo programmato di avere Dal e BLL in progetti separati e cercavo le migliori pratiche per utilizzare le classi di entità in BLL e prevenire la ridondanza nel codice.

Mentre cercavo e ci sono due idee principali:

  1. estendendo le classi di entità all'interno dello stesso progetto per classi parziali
  2. Utilizzo delle interfacce (implementate da Entity Class e pertinente classe BLL). L'ex è più popolare tra i programmatori.

Svantaggi per le soluzioni di cui sopra:

  1. Dobbiamo aggiungere il codice nello stesso progetto di parte della classe parziale. Questo è un bene per aggiungere proprietà e metodi, ma non è utile per sovrascrivere qualcosa (ad esempio, aggiungendo convalide prima di impostare una proprietà sul livello di logica aziendale)
  2. Se il modello di entità viene modificato, dobbiamo estrarre nuovamente le interfacce dalle classi di entità e è anche necessario un altro cambiamento nella classe correlata a BLL (due lavori manuali in giro).

La mia domanda è perché semplicemente non ereditamo le nostre classi BLL dalle classi di entità pertinenti e estendiamo/sovrascrive i loro metodi e le loro proprietà?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top