EF4 CTP5 сопоставление один к одному с существующей базой данных

Таким образом, у меня есть существующая база данных с таблицей "Пользователи" и таблицей "Аэропорты", каждая с идентификатором имен первичных ключей. В таблице "Пользователи" есть столбец DefaultAirportID со значением NULL, который является идентификатором таблицы "Аэропорты".

Вот мои POCO:

public class User : IEntity
{
    [Key]
    [Required]
    public int ID { get; set; }

    public int? DefaultAirportID { get; set; }        
    public Airport DefaultAirport { get; set; }

    ...
}

public class Airport : IEntity
{
    [Key]
    [Required]
    public int ID { get; set; }

    ...
}

Я получаю сообщение об ошибке "Неверное имя столбца" AirportID ".". Что мне нужно сделать, чтобы получить его для заполнения объекта DefaultAirport?

1 ответ

Решение

Вам нужно использовать свободный API для настройки вашей ассоциации:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<User>()
                .HasOptional(x => x.DefaultAirport)
                .WithMany()
                .HasForeignKey(n => n.DefaultAirportID);        
}
Другие вопросы по тегам