0

我使用内置的帐户控制器/模型/视图创建了一个标准的 MVC 4 应用程序。我现在尝试添加另一个控制器,但我想创建与现有用户的外键关系,但我收到错误消息:

类型“MVC4App.Models.ListingModel”的属性“CreatedBy”上的 ForeignKeyAttribute 无效。在依赖类型“MVC4App.Models.ListingModel”上找不到外键名称“UserId”。Name 值应该是逗号分隔的外键属性名称列表。

上市示范代码为:

使用系统;使用 System.ComponentModel.DataAnnotations.Schema;

namespace MVC4App.Models
{
    public class ListingModel
    {
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        public string Location { get; set; }

        public string Instrument { get; set; }

        public string Genres { get; set; }

        public string Description { get; set; }

        [ForeignKey("UserId")]
        public virtual UserProfile CreatedBy { get; set; } 

        public DateTime CreatedOn { get; set; }
    }
}

我在这里想念什么?还是有更好的方法我应该这样做?

另外我假设我可以在项目中稍后向用户个人资料添加额外的属性,例如电子邮件地址或头像图像的链接?

4

1 回答 1

4

您必须将 UserId 添加到您的实体:

namespace MVC4App.Models
{
    public class ListingModel
    {
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        public string Location { get; set; }

        public string Instrument { get; set; }

        public string Genres { get; set; }

        public string Description { get; set; }

        public int UserId {get; set;}
        [ForeignKey("UserId")]
        public virtual UserProfile CreatedBy { get; set; } 

        public DateTime CreatedOn { get; set; }
    }
}
于 2013-01-03T14:09:29.723 回答