我有两个集合,OrderItems和Items。有两个原因是因为在我的模型中,我有一个固定的项目,以及与项目有关的OrderItem,并添加了与订单对象相关的订单特定信息(如数量和属性(OrderID))。在ASP.NET MVC中,如何同步或合并两个不同类型的集合
在实体框架4中,为了在模型中拥有一个对象集合,需要将该对象与该集合类型的对象中的该模型关联起来。这使得Item中的OrderID属性是必需的。
这里是POCO的代码:
public class Order {
public int OrderID { get; set; }
public DateTime DatePlaced { get; set; }
public bool Filled { get; set; }
public string Comment { get; set; }
public virtual ICollection<OrderItem> OrderItems { get; set; }
}
public class OrderItem {
public int OrderItemID { get; set; }
public int OrderID { get; set; }
public int Quantity { get; set; }
public int ItemID { get; set; }
}
public class Item {
public int ItemID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int Size { get; set; }
}
所以现在我有我的模型,我想显示的订单详情页面。我可以将订单发送到ViewModel(MVC 3)或ViewData(MVC 2/1)从控制器工作正常,我也可以发送一个项目的集合,但如何显示项目列表包含Item属性和OrderItem中的数量?既然都是集合,我可以OrderBy ItemID并在视图中同时循环两次,但是看起来很杂乱。
我摆弄了创建一个匿名类,它结合了Items和Order,但在组合集合时并没有真正起作用。
我基本上是通过每个项目要循环和OrderItem的,并显示以下属性,而不做它的观点:
名称
说明
面积
数量
想法?
我认为,这只是自我跟踪实体。 – RPM1984 2010-12-14 09:17:55
非常感谢,这比我希望的要容易得多:V 我使用代码优先的EF – George 2010-12-14 09:21:47
虚拟-1。这是丑陋的和反OOP。 – Aliostad 2010-12-14 09:38:33