我使用内置的帐户控制器/模型/视图创建了一个标准的MVC 4应用程序。我现在尝试添加另一个控制器,但我想创建一个与现有用户的外键关系,但我收到错误消息:
类型为“MVC4App.Models.ListingModel”的属性“CreatedBy”上的ForeignKeyAttribute无效。在依赖类型“MVC4App.Models.ListingModel”上找不到外键名称“UserId”。 Name值应该是以逗号分隔的外键属性名称列表。
清单模型代码是:
使用System; 使用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; }
}
}
我在这里缺少什么?或者有更好的方法我应该这样做吗?
另外我假设我可以在用户个人资料中添加额外的属性,例如电子邮件地址或项目后期的头像图片链接?
答案 0 :(得分: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; }
}
}