0

您好,我有一个关于预订计划的问题。我希望会员能够租一部或多部电影。我的问题是我应该如何构建它,这样你就不能在租借时租借同一部电影。我应该在 Renting 类或其他东西中有一个名为 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”和该租赁条目中的日期字段。执行以下操作:选择 ID 不在电影列表中的所有电影,其中存在“DateTime.Now”在租借日期之间的条目。

如果您有同一部电影的多个副本等,还有更多解决方案。但为简单起见,只需使用上述解决方案之一。

于 2012-12-13T08:31:12.153 回答