Come strutturare i modelli di dati come dettagli o stub in C # usando prima il codice?

2

Dire che ho un elenco di prodotti supportato da una tabella SQL. Si tratta di un modello di dati di grandi dimensioni (troncato qui per brevità) ma diciamo assomiglia a questo:

public class Product {
    public int Id { get; set; }
    public int Number { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    public decimal Cost { get; set; }
    public int UnitsOnHand { get; set; }
    public int Ordinal { get; set; }
    public int Sku12 { get; set; }
    public string Color { get; set; }
    public Vendor Vendor { get; set; }
    public Image PrimaryImage { get; set; }
    public User CreatedBy { get; set; }
    public DateTime CreatedOn { get; set; }
    public ICollection<Image> Images { get; set; }
    public ICollection<Category> Categories { get; set; }
    public ICollection<Coupon> Coupons { get; set; }
    public ICollection<Tag> Tags { get; set; }
    public ICollection<ProductOption> Options { get; set; }
}

Mi sto bloccando su qualcosa come una pagina di elenco dei prodotti (indice) in cui ho bisogno solo di un piccolo sottoinsieme di Product da restituire in una raccolta, come:

public class ProductBasic {
    public int Id { get; set; }
    public int Number { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    public int UnitsOnHand { get; set; }
}

public ActionResult SearchProducts(string keyword) {
    IEnumerable<ProductBasic> result = _productService.Search(keyword);
    return View(result);
}

Un numero sufficiente di dati che una tabella / griglia potrebbe essere costruita prima che la pagina dei dettagli sia selezionata per l'entità desiderata e verrà restituito Product ad alta fedeltà, completo con il suo Image associato, Category , Coupon , Tag e ProductOption collezioni (record FK).

Sono in difficoltà sia con la convenzione sui nomi che con la gestione del codice, poiché questi oggetti rappresentano la stessa tabella fisica; cioè, non ho bisogno di ProductBasic creato nel database.

Il mio intento è di avere un oggetto più leggero per inviare una collezione al client, fino a quando non è richiesto un oggetto dettagliato. Qual è la convenzione di denominazione standard per modelli di dati di sottogruppi più piccoli come questo? Ho eseguito il kicking attorno a ProductBasic , ProductStub , ProductRoot , ProductSnip e ProductShort .

Quindi, Product rappresenta la mia tabella e devo prima escludere ProductBasic dal codice.

    
posta jbwebtech 13.10.2016 - 02:25
fonte

1 risposta

2

In caso di dubbi, utilizza nomi che rendono felice un esperto di dominio.

Facciamo un viaggio nel futuro. Adesso hai un compleanno. Preso una vacanza E ha codificato 5 cose più incredibili. Ora il tuo capo viene da te e dice che ha bisogno che il venditore si presenti nella pagina dell'indice. Hai dimenticato che la pagina esiste anche per non parlare del codice che la produce. Quindi cerchi nel codice base la frase "IndexPage" sperando di essere fortunata.

Che cosa desideri averlo nominato ora?

    
risposta data 13.10.2016 - 06:04
fonte

Leggi altre domande sui tag