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.