2013-02-22 9 views
7

Sto creando la mia prima applicazione asp.net mvc3. Sto usando la prima metodologia del codice. Ho i seguenti modelli:La proprietà di navigazione 'FootballGame' non è stata trovata nel tipo dipendente 'Bd.Domain.Entities.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; } 
} 

E ho la seguente classe:

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

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

Purtroppo, non è un'eccezione:

La ForeignKeyAttribute sulla proprietà 'FK_id_FootballGame' sul tipo 'Bd.Domain.FootballGame' non è valido. La proprietà di navigazione "FootballGame" non è stata trovata nel tipo dipendente "Bd.Domain.FootballGame". Il valore Nome dovrebbe essere un nome di proprietà di navigazione valido.

Ho provato a rimuovere queste linee:

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

Tuttavia, un'altra eccezione appaia:

La ForeignKeyAttribute sulla struttura 'id_FootballTeam_owner' del tipo 'Bd.FootballGame' non è valido. La proprietà di navigazione "FootballTeam" non è stata trovata nel tipo dipendente "Bd.FootballGame". Il valore Nome dovrebbe essere un nome di proprietà di navigazione valido.

Non vedo l'ora di ricevere aiuto. Saluti, Denis.

risposta

8

Prova questo:

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

grazie. Hai risolto il mio problema. – Denis

+0

e anche il mio .. Grazie. –

+0

Non capisco: la proprietà virtuale deve esistere come colonne della tabella db? Ottengo un errore successivo durante l'impostazione delle proprietà "false" virtuali: System.InvalidOperationException: la proprietà 'Category' non può essere configurata come proprietà di navigazione. La proprietà deve essere un tipo di entità valido e la proprietà deve avere un getter e un setter non astratto. – Luke

Problemi correlati