В настоящее время я работаю над устаревшей sytem db, которая довольно грязная
В таблице системы бронирования отелей есть таблица бронирования, которая имеет отношение один ко многим с другой системой бронирования (например, бронирование гостиницы, бронирование поезда) на основе systemid
Столик - Бронирование
Столбец Reservation_id (int) | System_id (int) | Customer_id |
45432 | может быть 1,2,3 и т. д. | 343 |
например, системный идентификатор 1 может быть отелем, 2 - поездом
Таблица - [Система] _Система бронирования может быть гостиница, поезд или рейс
Столбец Reservation_id (int) | create_date (datetime) | другие столбцы
45432 |
В настоящее время для загрузки информации о бронировании мы запрашиваем таблицу резервирования, а не по системному идентификатору запрашиваем соответствующую системную таблицу бронирования. Каждое бронирование может иметь 0..1 * для многих отношений с системой бронирования
Как я могу создать EF Mdel Builder вокруг этого.
Я попробовал следующее
[Table("Hotel_Reservation")]
public class HotelReservation
{
public int Reservation_id { get; set; }
public Virtual Reservation ReservationInfo { get; set; }
//other properties etc
}
[Table("Reservation")]
public class Reservation
{
public Reservation()
{
HotelReservations = new HashSet<HotelReservation>();
TrainReservations = new HashSet<TrainReservation>();
}
public int Reservation_id { get; set; }
public int SystemID { get; set; }
public virtual ICollection<HotelReservation> HotelReservations { get; set; }
public virtual ICollection<TrainReservation> TrainReservations { get; set; }
//other properties etc
}
//On model builder class contains
Builder.Entity<TrainReservation>()
.HasOptional(x => x.ReservationInfo)
.WithMany(x => x.TrainReservations )
.HasForeignKey(x => x.Reservation_id);
но при инициализации через следующую ошибку
Множественность конфликтует с референтным ограничением в роли .... Поскольку все свойства в зависимой роли не могут быть равны нулю, кратность основной роли должна быть равна 1.