現時点では、アイテムのさまざまな「履歴」要素を定義するために、データベースに複数のテーブルがあり、列がわずかに異なります。
これでアイテム テーブルができました。
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 日に場所 1 から場所 2 に移動されました
品目 123 は、2013 年 2 月 24 日に作業指示書 421 からピッキングされました
Entity Framework、.NET 4.5、WPF を使用し、Linq を使用してクエリを実行していますが、これらの履歴要素のリストを取得し、日付に基づいて 1 つずつ並べ替える方法がわかりません。
必要に応じて使用される列を持つ単一の履歴テーブルなど、面倒な方法を考えることができます。または、日付とそれがどのリストから来たかを含む 3 番目のリストを作成し、そのリストを循環して、対応するリストから対応するコンテンツを選択します。しかし、私はもっと良い方法があるに違いないと感じています!
どんな助けでも大歓迎です。