Asp.net mvc 4 如何使用MVC4中的UserProfile表使用一对多关系-EF中的ForeignKey映射

Asp.net mvc 4 如何使用MVC4中的UserProfile表使用一对多关系-EF中的ForeignKey映射,asp.net-mvc-4,model,code-first,foreign-key-relationship,one-to-one,Asp.net Mvc 4,Model,Code First,Foreign Key Relationship,One To One,我试图将“UserProfile”与另一个模型“Data”关联起来 用户配置文件模型: [Table("UserProfile")] public class UserProfile { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int UserId { get; set; } public string UserName { get; set; }

我试图将“UserProfile”与另一个模型“Data”关联起来

用户配置文件模型:

[Table("UserProfile")]
public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
    public string FullName { get; set; }
}
数据模型:

[Table("Data")]
public class Data
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int DataID { get; set; }

    [Required]
    [Display(Name = "DataName")]
    public string DataName { get; set; }

    [Required]
    [Display(Name = "Created Date")]
    public DateTime CreatedDate { get; set; }

    public int? ManagedByUserId { get; set; }
    [Required]
    [ForeignKey("ManagedByUserId")]
    [Display(Name = "Managed By")]
    public UserProfile ManagedByUser { get; set; }
}
这里ManagedByUserId是数据表中的foriegnkey


命名公约有什么问题吗?但是,我收到一个属性错误
,需要“ManagedByUser”
。因此,我的
ModelState
无效(
ModelState.IsValid
false
),因此不会保存数据。

您的关系是哪个方向?
Data
是否有许多
UserProfile
或者反过来呢?
Data
只有一个
UserProfile
。这是一个一对一的关系我找到了一个解决方案,
public int?ManagedByUserId
字段不应为
,需要为该字段添加
[必需]
属性。还需要从
public UserProfile ManagedByUser
字段中删除
[必需]
。如果像这样修改,所有的工作。但是,如果我想让
ManagedByUserId
成为
Nullable
的话,你不能让它为null,按照逻辑,你只能在UserProfile存在的情况下创建数据。您的标签上还显示了一对多。如果我想将
ManagedByUserId
设置为可选,该怎么办?假设所有
数据
都没有ManagedByUser。