1

因此,我有一個現有的數據庫,其中有一個Users表和一個Airports表,每個表都有一個主鍵名稱ID。用戶表具有一個可空的列DefaultAirportID,它是一個到Airports表的ID的fk。EF4 CTP5與現有數據庫的一對一映射

這裏是我的波蘇斯:

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

莫爾塔扎,感謝您的快速反應。這讓我更進了一步。現在,我不再發生該異常,並且DefaultAirportID已正確填充,但DefaultAirport爲空。 – jimox 2011-03-20 16:40:26

+0

沒問題,如果你想要它被延遲加載,那麼你需要把它標記爲'虛擬'。否則,只需用'Include'方法加載即可。 – 2011-03-20 16:46:49

+0

Morteza,非常感謝。你可能爲我節省了大量的研究時間。 – jimox 2011-03-20 20:35:10