这就是我的USER数据模型的样子
public class User
{
/// <summary>
/// .cstor
/// </summary>
public User()
{
this.UserDetails = new UserDetails();
}
/// <summary>
/// Gets or sets the Primary key.Identity key
/// </summary>
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[ForeignKey("UserDetails")]
public int UserId { get; set; }
[Required]
[StringLength(150, MinimumLength = 1)]
public string Name { get; set; }
/// <summary>
/// Gets or sets the user details
/// </summary>
[Required]
public virtual UserDetails UserDetails { get; set; }
}
public class UserDetails
{
[Required]
public int UserDetailsId { get; set; }
[Required]
public virtual User User { get; set; }
[StringLength(1000)]
public string Address { get; set; }
[Required]
[StringLength(20, MinimumLength = 8)]
public string PhoneNumber { get; set; }
[StringLength(255, MinimumLength = 3)]
public string Email { get; set; }
[StringLength(255)]
public string Photo { get; set; }
}
我有一个Create视图(razor引擎),其中填充了User和UserDetails的属性。 但是我无法创建这个,因为我的模型状态在保存时无效,因为Userdetails.User为null。根据我的理解,这个属性只是让EF知道这种关系。 有人能告诉我一个简洁的方法来结束(剃刀到DBcontext保存)这些相关实体的保存吗?
答案 0 :(得分:0)
这里你有一对一的关系。
执行此操作的一种方法是,如果在您的应用程序中有意义,则可以UserDetails
成为ComplexType
并删除它的User
属性。
这样做的一个副作用是所有数据都将存储在一个表中。