目前,我的数据库中有多个表,其中列略有不同,用于为项目定义不同的“历史”元素。
所以我有我的项目表;
int ItemId {get;set}
string Name {get;set}
Location Loc {get;set}
int Quantity {get;set}
我可以对这些项目做一些事情,比如移动、增加数量、减少数量、预订给客户、“挑选”一个项目,诸如此类。所以我制作了多个“历史表”,因为它们有不同的值来保存例如
public class MoveHistory
{
public int MoveHistoryId { get; set; }
public DateTime Date { get; set; }
public Item Item { get; set; }
public virtual Location Location1Id { get; set; }
public virtual Location Location2Id { get; set; }
}
public class PickingHistory
{
public int PickingHistoryId { get; set; }
public DateTime Date { get; set; }
public Item Item { get; set; }
public int WorksOrderCode { get; set; }
}
除了我想显示列表中显示的项目的完整历史记录之外,这很好;
项目 123 于 2013 年 2 月 23 日从 Location1 移动到 Location2
项目 123 于 2013 年 2 月 24 日从工单 421 中提取
我正在使用 Entity Framework、.NET 4.5、WPF 和使用 Linq 进行查询,但无法找到获取这些历史元素列表并根据它们的日期逐个排序的方法。
我可以想出一些杂乱无章的方法,比如在需要时使用带有列的单个历史表。或者甚至创建第三个列表,其中包含日期和它来自哪个列表,然后在该列表中循环,从相应列表中选择相应的内容。但是,我觉得必须有更好的方法!
任何帮助,将不胜感激。