0

こんにちは予約スキームについて質問があります。メンバーが1本以上の映画をレンタルできるようにしたいと思います。私の質問は、貸し出し中に同じ映画を借りることができないように、どのように構成すればよいかということです。Rentingクラスまたは他の何かのbolean値としてAvaliableという名前の変数が必要ですか?どうも

public class Member
{
    public virtual int MemberId { get; set; }
    public virtual int Name { get; set; }
    public virtual List<Rental> Rentals { get; set; }
}
 public class Movie
{
    public virtual int MovieId { get; set; }
    public virtual string Name { get; set; }
}
 public class Renting
{
    public virtual int RentalId { get; set; }
    public virtual int MovieId { get; set; }
    public virtual Movie Movie { get; set; }
    public virtual int MemberId { get; set; }
    public virtual Member Member { get; set; }

    public DateTime startDate { get; set; }
    public DateTime endDate { get; set; }
    public DateTime dueDate { get; set; }

}
4

1 に答える 1

1

さて、あなたはさまざまな方法で問題を解決することができます:

解決策#1-または、クラスMovie> public virtual Bool IsOnStock {get; set;}にフラグを追加し、利用可能な映画を表示して他のメンバーに予約させる場合は、movies.whereを選択するだけです。 (x => x.IsOnStock)簡単な解決策ですが、賃貸の「ステータス」が変更された場合はいつでもこのフィールドを更新することを忘れないでください。そうしないと機能しません。しかし、それは良い考えだと思います。誰かが映画を借りて、それが2日で返されると言った場合、おそらくそれは起こらず、実際に起こったときにのみそのフラグを変更するからです。

解決策#2-新しい「プロパティ」を使用する代わりに、「DateTime.Now」とそのレンタルエントリの日付フィールドを考慮して、レンタルエントリにアクセスすることで「フィルタリング」を開始できます。次のようにします。「DateTime.Now」がレンタル日の間にあるエントリがある映画のリストにIDが含まれていないすべての映画を選択します。

同じ映画のコピーが複数ある場合など、さらに多くの解決策がありますが、簡単にするために、上記の解決策の1つを使用してください。

于 2012-12-13T08:31:12.153 に答える