EF4 CTP5与现有数据库一对一映射

时间:2011-03-20 14:26:22

标签: entity-framework entity-framework-4 entity-framework-ctp5

所以我有一个现有的数据库,其中包含一个Users表和一个每个都带有主键名ID的Airports表。 Users表有一个可为空的列DefaultAirportID,它是到Airports表的ID的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 个答案:

答案 0 :(得分:1)

您需要使用流畅的API来配置关联:

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