2016-04-29 143 views
1

我可以使用帮助和建议,我应该如何创建我要在我的项目中使用的数据模型。实体框架的预留数据模型(代码优先)

这是一个项目,我要创建一个可以预订房间的酒店应用程序。

我想3模型类:

  • BookingModel(包含所有创建预订)
  • RoomModel(包含所有房间)
  • PersonDetailsModel(该谁下令预订人)

我有点不确定我的数据模型应该如何...已经使我想到的这些术语。

  • 预订可以有1到很多房间。
  • 房间可以预订多次,但在不同的日子。
  • 预订可以由一个人预订。

我想我们在预订和房间之间有多对多的关系?预订和人之间有多对一?

代码(模型):

public class Booking 
{ 
    public int BookingID{ get; set; } 
    public string BookingNumber{ get; set; } 
    public DateTime CheckInDate { get; set; } 
    public DateTime CheckOutDate { get; set; } 
    public int PersonDetailsID { get; set; } 

    public virtual PersonsDetails PersonsDetails { get; set; } 
    public virtual ICollection<Room> Rooms { get; set; } 
} 

public class PersonDetails 
{ 
    public int PersonDetailsID{ get; set; } 
    public string FirstName{ get; set; } 
    public string LastName{ get; set; } 
} 

public class Room 
{ 
    public int RoomID{ get; set; } 
    public string RoomNumber{ get; set; } 

    public virtual ICollection<Booking> Bookings{ get; set; } 
} 

这是我的模型现在的样子。不知道是否预订应该有外键PersonDetails或其他方式(persondetails应该有bookingID作为外键)

我错过了任何建议吗?

+0

你见过我的答案。 – CodeNotFound

回答

1

有不知道的预订应该有一个外键PersonDetails或周围的其他方式(persondetails应该有bookingID为外键)

预定是由一个人做和一个人可以做多预订。那么你的模型是正确的,因为:

  • 与导航属性PersonalDetailsBooking类我们可以知道是谁做的。
  • 如果您需要了解与特定人员相关的所有预订,您还可以在PersonalDetails中添加集合导航属性ICollection<Booking>