Entity framework ошибка Invalid column name при доступе к таблице

337
25 декабря 2016, 18:41

Здравствуйте.

Есть 3 связанных сущности

public class Station : IEntitie
{
    [Key]
    public int Id { get; set; }
    [Required(ErrorMessage = "Введите Ecp код станции")]
    public int EcpCode { get; set; }
    [Required(ErrorMessage = "Введите название станции")]
    public string Name { get; set; }
    public string Description { get; set; }
    public virtual ICollection<RailwayStation> RailwayStations { get; set; }                            //Многие ко многим с RailwayStation (для вывода всех станций по вокзалу) 
} 

public class RegulatorySchedule : IEntitie
{
    [Key]
    public int Id { get; set; }
    [Required]
    [MaxLength(10)]
    public string NumberOfTrain { get; set; }                   //Номер поезда в расписании
    public virtual Station DispatchStation { get; set; }        //Станция отправления
    public virtual Station DestinationStation { get; set; }     //Станция назначения
    [Column(TypeName = "datetime2")]
    public DateTime? ArrivalTime { get; set; }                  //Время прибытия поезда на станцию
    [Column(TypeName = "datetime2")]
    public DateTime? DepartureTime { get; set; }                //Время отправления поезда со станции

    #region FK
    [Required]
    public RailwayStation RailwayStation { get; set; }                           //Обязательно относится к вокзалу            
    #endregion
}

public class RailwayStation : IEntitie
{
    [Key]
    public int Id { get; set; }
    [Required(ErrorMessage = "Введите название станции")]
    [MaxLength(100)]
    public string Name { get; set; }
    public virtual ICollection<Station> Stations { get; set; }                             // многие ко многим с Station. (список возможных станций этого вокзала)
    public virtual ICollection<RegulatorySchedule> RegulatorySchedules { get; set; }       // один ко многим с RegulatorySchedules. (одна запись в расписании принаджежит только 1 вокзалу)
}

Строка подключения

  <connectionStrings>
    <add name="CisDbContext" connectionString="Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=C:\Users\User\CisDbContextTest999.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>

При обращении к таблице RegulatorySchedule на чтение всех элементов. (База только что создана, таблицы пустые). Возникает исключение Message = "Invalid column name 'DestinationStation_Id'."

Скорее всего у меня 2 связи с типом Station (DispatchStation и DestinationStation) и entity путается тут. Подскажите пожалуйста, где не правильно.

Answer 1

Что-то типа такого:

public class RegulatorySchedule
{
    public int DispatchID { get; set; }
    public int DestinationID { get; set; }
    [ForeignKey("DispatchID")]
    public virtual Station DispatchStation { get; set; }
    [ForeignKey("DestinationID")]
    public virtual Station DestinationStation { get; set; }
}

См. тж. тут

READ ALSO
Вложенные анонимные типы?

Вложенные анонимные типы?

Всем привет, имеется вот такой пример:

315
xPath selectSingleNode не могу выбрать элемент

xPath selectSingleNode не могу выбрать элемент

Добрый деньесть XML файл

492
Генерация и движение объектов(врагов) [требует правки]

Генерация и движение объектов(врагов) [требует правки]

Хотел бы узнать, как в консоле реализовать генерацию, движение и стрельбу противников

284