【发布时间】:2009-08-24 17:24:44
【问题描述】:
我正在创建一个简单的 aspnetmvc 购物车应用程序,并定义了类似于以下内容的类:
public class Cart
{
public Guid Id { get; set; }
public string Comment { get; set; }
public DateTime CreatedOn { get; set; }
public DateTime UpdatedOn { get; set; }
public DateTime? DeletedOn { get; set; }
public List<CartItem> CartItems { get; set; }
}
public class CartItem
{
public Guid Id { get; set; }
public Guid CartId { get; set; }
public string Sku { get; set; }
public double ItemAmount { get; set; }
public double Amount { get; set; }
public int Quantity { get; set; }
}
使用一个看起来像这样的非常简单的存储库:
public interface ICartRepository
{
Cart CreateCart();
Cart GetCart(Guid Id);
Cart UpdateCart(Cart cart);
void DeleteCart(Cart cart);
}
创建类后,我开始觉得我更适合从 Cart 类中分离 List 属性,然后在我的视图模型中重新组合它们。
public class vmCart
{
public Cart cart { get; set; }
public List<CartItem> CartItems { get; set; }
public string CreatedOn
{
get
{
return cart.CreatedOn.ToString();
}
}
public string CartTotal
{
get
{
var total = (double)0;
foreach (var lineItem in CartItems)
{
total += lineItem.Amount;
}
return total.ToString("c");
}
}
}
这意味着我必须为 CartItems 的 CRUD 向我的模型添加额外的方法,但仍然允许我将对象作为组合实体呈现给视图(通过视图模型)。
这两种格式可能没有明显的优势,但我希望能收到有关设计的任何反馈。
最好的问候,
哈尔
【问题讨论】:
标签: c# asp.net-mvc model-view-controller