我们有Customer事务表,其中包含多个带外键的查找表。当CustomerService创建客户订单交易时,我们希望使用这些查找表创建下拉菜单。如果某人稍后查看了这些交易,他们会看到4个表连在一起。
我会创建吗,
(a)4个与4个存储库的接口,
(b)或2个接口(1个用于客户交易,1个用于查找表的接口),1个用于客户交易的存储库,以及3个用于查找表接口的存储库?
我们希望将Lookup表Repository中继到下面的SelectList。每个选择列表都在挑选某些列。希望提高代码效率。
模特:
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; },
}
下拉列表中的必填字段
ViewData["ProductTypeId"] = new SelectList(_context.ProductType, "ProductName", "ProductDescription");
ViewData["KeyNumber"] = new SelectList(_context.CustomerType , "NameofPerson", "Description");
ViewData["StatusKey"] = new SelectList(_context.StatusType, "Symbol", "ResearchNotes");
答案 0 :(得分:1)
您可以创建一个数据传输对象(DTO)来满足您的前端需求。
public class EditTransaction {
CustomerTransaction customerTransaction { get; set; }
SelectList productTypes { get; set; }
SelectList statusType { get; set; }
SelectList customerTypes { get; set; }
}
包含一个类/方法/控制器/访问DAL存储库并组装DTO的任何内容。您的客户端代码会选择DTO。在存储库和用户界面中没有任何“特殊”。