我创建一个简单的aspnetmvc车应用程序和定义类似于以下类:POCO格式
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,但仍允许我介绍对象的视图(通过视图模型)作为合并后的实体。
这两种格式都可能没有明显的优势,但我会喜欢任何关于设计的反馈。
最好的问候,
哈尔
前两个答案都很棒,并得出基本相同的结论。我已经接受了最快的回应。感谢您的帮助...... – Hal 2009-08-24 17:54:41