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);
}