Abbiamo una tabella transazionale del cliente con più tabelle di ricerca con chiavi esterne. Vogliamo creare menu a discesa utilizzando queste tabelle di ricerca, quando CustomerService crea una transazione dell'ordine cliente. Se una persona vede le transazioni in un secondo momento, vedrebbe i 4 tavoli uniti.
Creerei
(a) 4 interfacce con 4 repository,
(b) o 2 interfacce (1 per Customer Transaction, 1 interfaccia per le tabelle di ricerca), con 1 repository per la transazione cliente e 3 repository per l'interfaccia tabella di ricerca?
Vogliamo inoltrare il Repository della tabella di ricerca alla SelectList di seguito. Ogni lista di selezione sta selezionando determinate colonne. Vuoi essere efficiente nel codice.
Modelli:
public class CustomerTransaction
{
public int CustomerTransactionId{ get; set; },
public int ProductTypeId {get; set; }, //joins to ProductTypeTable
public int StatusKey {get; set; }, //joins to StatusTypeTable
public int CustomerTypeId {get; set; } //joins to CustomerTypeTable
public string DateOfPurchase{ get; set; },
public string PurchaseAmount { get; set; },
}
public class ProductType
{
public int ProductTypeId{ get; set; }
public int Size { get; set; }
public int Weight { get; set; },
public string ProductName { get; set; },
public string ProductDescription { get; set; },
}
public class StatusType
{
public int StatusKey{ get; set; }
public string Description{ get; set; },
public string Symbol { get; set; },
}
public class CustomerType
{
public int KeyNumber{ get; set; },
public int Height{ get; set; }
public string HairColor{ get; set; },
public string NameOfPerson{ get; set; },
public string ResearchNotes{ get; set; },
}
Menu a discesa campi obbligatori
ViewData["ProductTypeId"] = new SelectList(_context.ProductType, "ProductName", "ProductDescription");
ViewData["KeyNumber"] = new SelectList(_context.CustomerType , "NameofPerson", "Description");
ViewData["StatusKey"] = new SelectList(_context.StatusType, "Symbol", "ResearchNotes");