EF4 CTP5 сопоставление один к одному с существующей базой данных - PullRequest
1 голос
/ 20 марта 2011

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

Вот мои 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 Ответ

1 голос
/ 20 марта 2011

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

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<User>()
                .HasOptional(x => x.DefaultAirport)
                .WithMany()
                .HasForeignKey(n => n.DefaultAirportID);        
}
...