猿问

多个查找表的 MVC 核心存储库模式

我们有带有多个带有外键的查找表的客户事务表。当 CustomerService 创建客户订单交易时,我们希望使用这些查找表创建下拉菜单。如果一个人稍后查看交易,他们会看到 4 个表连接在一起。


我会创造,


(a) 4 个接口与 4 个存储库,


(b) 或 2 个接口(1 个用于客户交易,1 个用于查找表),1 个用于客户交易的存储库和 3 个用于查找表接口的存储库?


我们想将 Lookup table 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");



万千封印
浏览 122回答 1
1回答

千巷猫影

您可以创建一个数据传输对象 (DTO) 来提供前端所需的内容。public class EditTransaction {    CustomerTransaction customerTransaction { get; set; }    SelectList productTypes { get; set; }    SelectList statusType { get; set; }    SelectList customerTypes { get; set; }}包括一个类/方法/控制器/任何访问你的 DAL 存储库并组装 DTO 的东西。您的客户端代码获取 DTO。存储库和 UI 中没有什么“特别的”。
随时随地看视频慕课网APP
我要回答