Asp.net mvc 4 如何使用MVC4中的UserProfile表使用一对多关系-EF中的ForeignKey映射
我试图将“UserProfile”与另一个模型“Data”关联起来 用户配置文件模型: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; }
[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。