Entity framework che separa le entità per l'implementazione specifica del prodotto e del cliente

0

Sto progettando un'applicazione con l'intenzione di farne una linea di prodotti. Mi piacerebbe estendere la funzionalità su tutti i livelli e la prima lotta è con i modelli di dominio.
Ad esempio, la funzionalità di base avrebbe un'entità denominata Fattura con pochi campi standard e quindi i requisiti del cliente aggiungeranno alcuni nuovi campi ad esso, ma non voglio aggiungere alla classe Invoice principale.

Per ogni cliente potrei usare DbContext specifico del cliente e contesto iniettato corretto con l'iniezione delle dipendenze.
Inoltre, ogni cliente avrà la propria implementazione

public class Product.Domain.Invoice 
{
    public int InvoiceId { get; set; }
    // Other fields
}

Come affrontare questo problema?

La soluzione 1 non funziona poiché Entity Framework non consente le stesse classi di nomi semplici.

public class CustomerA.Domain.Invoice : Product.Domain.Invoice
{
    public User ReviewedBy { get; set; }
    public DateTime? ReviewedOn { get; set; }
}

Soluzione 2

Crea una tabella separata e collegala alla tabella del dominio principale. Riutilizzare servizi e controller potrebbe essere più difficile.

public class CustomerA.Domain.CustomerAInvoice 
{
    public Product.Domain.Invoice Invoice { get; set; }

    public User ReviewedBy { get; set; }
    public DateTime? ReviewedOn { get; set; }
}
    
posta Codecat 12.11.2013 - 09:10
fonte

0 risposte

Leggi altre domande sui tag