Asp.net mvc 3 &引用;空";在MVC3和x2B上创建外键关系记录;环境足迹

Asp.net mvc 3 &引用;空";在MVC3和x2B上创建外键关系记录;环境足迹,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我使用的是EF+MVC3+razor 我有一个名为userProfile的模型类,姓氏变量+一个外键爱好(我想把它看作一个下拉列表) 我创建了一个控制器,只需选择这个类别和数据上下文 当我尝试创建记录时,它不允许我这样做,正如在验证区域中所说:“嗜好字段是必需的。”。 我希望“嗜好”下拉列表不是必需的。 我怎么能做到 这就是我所拥有的: 型号: public class UserProfile { [Key] public int Id { get; set; }

我使用的是EF+MVC3+razor 我有一个名为userProfile的模型类,姓氏变量+一个外键爱好(我想把它看作一个下拉列表) 我创建了一个控制器,只需选择这个类别和数据上下文

当我尝试创建记录时,它不允许我这样做,正如在验证区域中所说:“嗜好字段是必需的。”。 我希望“嗜好”下拉列表不是必需的。 我怎么能做到

这就是我所拥有的:

型号:

public class UserProfile    {
    [Key]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    [Required]
    public string Surname { get; set; }

    public int HobbiesId { get; set; }
    public virtual Hobby Hobby { get; set; }}

public class Hobby
{
    public int HobbiesId { get; set; }
    public string HobbieName { get; set; }
    public virtual ICollection<UserProfile> UserProfiles { get; set; } 
}

 public class UserProfileDBContext : DbContext
{
    public DbSet<UserProfile> UserProfiles { get; set; }
    public DbSet<Hobby> Hobbies{ get; set; }
 }
我已经尝试过修改:

 public class Hobby
{
    public int ?HobbiesId { get; set; }
但它不起作用

有什么帮助吗

提前谢谢


PnP添加外键约束,如下所示:

 public int? HobbiesId { get; set; }
 [ForeignKey("HobbiesId")]

你在
UserProfile
类中尝试了
public int?HobbiesId{get;set;}
吗?你还应该将你的
Hobby
类成员重命名为
Id
Name
,而不是
HobbiesId
HobbyName
Id
成员不应为空!试试公共虚拟爱好?嗜好{get;set;}在您的UserProfile class.HI中。谢谢你,你说得对。我用int?HobbiesId{get;set;}试过了,成功了!。。非常感谢你!!。。
 public class Hobby
{
    public int ?HobbiesId { get; set; }
 public int? HobbiesId { get; set; }
 [ForeignKey("HobbiesId")]