0

我不能添加一個控制器,它說:我不能添加在MVC 4碼控制器第一

無法檢索元數據「Diets.Models.Usuario」屬性「ProgramaDietaID」無法可配置作爲導航屬性。該屬性必須是一個有效的實體,並且該屬性應該有一個非抽象的getter和setter。對於集合屬性,類型必須實現ICollection,其中T是有效的實體類型。

我不弄清我做錯了,「Usuario」和「ProgramaDieta」實體之間的角色是一個一對多。

public class Usuario 
{ 
    [Key] 
    [Required] 
    public int UsuarioID { get; set; } 

    [Display(Name = "Name:")]//lo que mostrara el titulo del campo la Vista. 
    [StringLength(50, ErrorMessage = "The name cannot be longer than 50 characters.")] 
    [RegularExpression(@"^[a-zA-Z''-'\s]*$")]//para que acepte solo letras y no carac. alfanumericos. 
    [Required] 
    public string Nombre { get; set; } 
    public virtual ICollection<ProgramaDieta> ProgramaDietas { get; set; } 
} 

public class ProgramaDieta 
{ 
    [Key] 
    public int ProgramaDietaID { get; set; } 

    [ForeignKey("UsuarioID")] 
    public int UsuarioID { get; set; } 
    public virtual Usuario Usuario { get; set; } 
} 

上下文類

public class MejoraConProgramasContext:DbContext 
{ 
    public MejoraConProgramasContext() 
     : base("MejoraConProgramasContext") 
    { 
    } 

    public DbSet<Usuario> Usuarios { get; set; } 
    public DbSet<ProgramaDieta> Programas { get; set; } 
} 

回答

1

ForeignKey不適當地安裝於所述int UsuarioID屬性而不是virtual Usuario Usuario

+0

呵呵,很好的接收。我一直盯着這個。 –

+0

我也盯着一段時間:) –

+0

謝謝你的嘗試,但問題不斷,刪除後外鍵形式UsuarioID和放在Usuario Usuario :(我相信是一個映射實體問題。 –