2013-02-22 55 views
7

我正在創建我的第一個asp.net mvc3應用程序。我使用的是代碼優先方法。我有以下型號:在依賴類型'Bd.Domain.Entities.FootballGame'上找不到導航屬性'FootballGame'

public class FootballGame 
{ 
    [Key] 
    public Guid id_FootballGame { get; set; } 

    [ForeignKey("FootballGame")] 
    public Guid? FK_id_FootballGame { get; set; } 
    public virtual FootballGame PreviousFootballGame { get; set; } 

    [ForeignKey("FootballTeam")] 
    public Guid id_FootballTeam_owner { get; set; } 
    public virtual FootballTeam FootballTeamOwner { get; set; } 

    [ForeignKey("FootballTeam")] 
    public Guid id_FootballTeam_guest { get; set; } 
    public virtual FootballTeam FootballTeamGuest { get; set; } 
} 

public class FootballTeam 
{ 
    [Key] 
    public Guid id_FootballTeam { get; set; } 
    public string teamName { get; set; } 
} 

而且我有下面的類:

public class EFDbContext : DbContext 
{ 
    public EFDbContext() : base("name=EFDbContext") { } 

    public DbSet<FootballTeam> FootballTeams { get; set; } 
    public DbSet<FootballGame> FootballGames { get; set; } 
} 

不幸的是,有一個例外:

的ForeignKeyAttribute財產 'FK_id_FootballGame' 上 類型'Bd.Domain.FootballGame'無效。在依賴類型 'Bd.Domain.FootballGame'上未找到導航 屬性'FootballGame'。名稱值應該是有效的 導航屬性名稱。

我試圖刪除這些行:

[ForeignKey("FootballGame")] 
public virtual FootballGame PreviousFootballGame { get; set; } 

然而,另一個例外出現:

的ForeignKeyAttribute財產 'id_FootballTeam_owner' 在類型 'Bd.FootballGame' 不是有效。在依賴類型'Bd.FootballGame'上未找到導航屬性「FootballTeam」 。名稱值 應該是有效的導航屬性名稱。

我期待着任何幫助。 問候,丹尼斯。

回答

8

試試這個:

public class FootballGame 
{ 
    [Key] 
    public Guid id_FootballGame { get; set; } 

    public Guid? FK_id_FootballGame { get; set; } 
    [ForeignKey("FK_id_FootballGame")] 
    public virtual FootballGame PreviousFootballGame { get; set; } 

    public Guid id_FootballTeam_owner { get; set; } 
    [ForeignKey("id_FootballTeam_owner")] 
    public virtual FootballTeam FootballTeamOwner { get; set; } 

    public Guid id_FootballTeam_guest { get; set; } 
    [ForeignKey("id_FootballTeam_guest")] 
    public virtual FootballTeam FootballTeamGuest { get; set; } 
} 
+0

謝謝。你解決了我的問題。 – Denis 2013-02-23 06:35:27

+0

和我也是..謝謝你。 – 2015-11-30 09:55:05

+0

我不明白:虛擬屬性必須作爲數據庫表列存在嗎?設置虛擬「假」屬性時出現以下錯誤: System.InvalidOperationException:無法將屬性「類別」配置爲導航屬性。該屬性必須是有效的實體類型,並且該屬性應該具有非抽象的getter和setter。 – Luke 2017-05-21 16:06:00