0

当我运行我的代码优先 MVC 应用程序并尝试访问 DeveloperAccountModel 详细信息页面或另一个加载父对象和 DeveloperAccountModel 集合的视图时,我收到以下错误:导航属性“重定向”不是一个声明的属性输入“DeveloperAccountModel”。在这一点上,我没有访问该属性(它确实存在!)只是试图加载 DeveloperAccountModel。

 [Table("sitedata")]
public class DeveloperAccountModel
{
    [Required]
    [RegularExpression("^[0-9]*$")]
    [Display(Name = "User id")]
    [Key]
    [Column("_rowid")]
    public long RowId { get; internal set; }

    // Other properties removed

    [Display(Name = "Redirects")]
    [NotMapped]
    [InverseProperty("DeveloperAccount")]
    public List<SiteRedirectModel> Redirects { get; internal set; }
}

然后是依赖模型

[Table("siteredirects")]
public partial class SiteRedirectModel
{
    [Key]
    [Column("_rowid")]
    [Display(Name = "RowId")]
    public int RowId { get; internal set; }

    [Column("_siteid")]
    [Display(Name = "Developer account id")]
    public long DeveloperAccountModelId { get; internal set; }

    [NotMapped]
    [ForeignKey("DeveloperAccountModelId")]
    public virtual DeveloperAccountModel DeveloperAccount { get; internal set; }
}

我已经尝试了各种教程和示例的多种变体,包括发生此错误或类似错误的其他时间,但我没有看到真正简单的东西。有人可以帮忙吗?

4

1 回答 1

1

简单地说,从两个属性中删除[NotMapped]属性。因此,您的属性定义应如下所示:

// In SiteRedirectModel
[ForeignKey("DeveloperAccountModelId")]
public virtual DeveloperAccountModel DeveloperAccount { get; internal set; }




// In DeveloperAccountModel
[Display(Name = "Redirects")]
[InverseProperty("DeveloperAccount")]
public List<SiteRedirectModel> Redirects { get; internal set; }
于 2013-04-25T15:32:39.913 回答