MVC 模型外键导航属性

Posted

技术标签:

【中文标题】MVC 模型外键导航属性【英文标题】:MVC Model Foreign Key Navigational Property 【发布时间】:2012-12-11 16:10:57 【问题描述】:

我目前有一个博客模型,其中我有一个博客作者的外键:

    [Required]
    [ForeignKey("BlogAuthorModel")]
    [Display(Name = "Author")]
    public int BlogAuthorId  get; set; 

    public BlogAuthorModel BlogAuthorModel  get; set; 

我必须将 BlogAuthorModel 属性添加到类中才能使外键起作用。

有谁知道这是什么,因为当我尝试使用它时,它是空的 - 它应该自动完成还是我必须放入我自己的代码以使其使用外键来填充?

更新

无论是谁将此标记为重复,我的问题不是关于如何添加外键,而是如何填充 BlogAuthorModel,事实证明,如果您将其设为虚拟,那么它将自动填充:

    public virtual BlogAuthorModel BlogAuthorModel  get; set; 

【问题讨论】:

【参考方案1】:

这是用于 EF 类的导航属性。我相信您需要将 ForiegnKey 向下移动到实际对象,指向您各自类中的外键字段。

[Required]
[Display(Name = "Author")]
public int BlogAuthorId  get; set; 

[ForeignKey("BlogAuthorId")]
public BlogAuthorModel BlogAuthorModel  get; set; 

【讨论】:

啊,它还需要将博客作者 id 外键放在你所说的位置,而不仅仅是虚拟的东西。感谢您的输入 @Pete 很好,很高兴我能帮上忙。

以上是关于MVC 模型外键导航属性的主要内容,如果未能解决你的问题,请参考以下文章

EF Code First 导航属性 与外键

EF Code First 导航属性 与外键

使用实体框架的导航属性的有意义的名称

ASP.NET Core MVC POST 方法一个具有外键 ID 的模型

如果我需要引用外键(例如 CountryID),我的模型在 MVC3 中的表现如何?

EF6(代码优先)单个外键属性上的多个导航属性