2016-04-29 107 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>