Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NETMVC3更新相关模型_Asp.net_Asp.net Mvc 3_Entity Framework - Fatal编程技术网

ASP.NETMVC3更新相关模型

ASP.NETMVC3更新相关模型,asp.net,asp.net-mvc-3,entity-framework,Asp.net,Asp.net Mvc 3,Entity Framework,这就是我的用户数据模型的样子 public class User { /// <summary> /// .cstor /// </summary> public User() { this.UserDetails = new UserDetails(); } /// <summary> /// Gets or sets the Primary key.Identity key

这就是我的用户数据模型的样子

 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; }
}
公共类用户
{
/// 
///.cstor
/// 
公共用户()
{
this.UserDetails=新的UserDetails();
}
/// 
///获取或设置主键。标识键
/// 
[关键]
[数据库生成(DatabaseGeneratedOption.Identity)]
[外键(“用户详细信息”)]
public int UserId{get;set;}
[必需]
[StringLength(150,最小长度=1)]
公共字符串名称{get;set;}
/// 
///获取或设置用户详细信息
/// 
[必需]
公共虚拟用户详细信息用户详细信息{get;set;}
}
公共类用户详细信息
{
[必需]
public int UserDetailsId{get;set;}
[必需]
公共虚拟用户用户{get;set;}
[长度(1000)]
公共字符串地址{get;set;}
[必需]
[StringLength(20,最小长度=8)]
公共字符串PhoneNumber{get;set;}
[StringLength(255,最小长度=3)]
公共字符串电子邮件{get;set;}
[StringLength(255)]
公共字符串Photo{get;set;}
}
我有一个Create视图(razor引擎),其中填充了User和UserDetails的属性。 但是我无法创建它,因为我的modelstate在保存时无效,因为Userdetails.User为null。根据我的理解,这个属性只是为了让EF知道这种关系。
有人能告诉我一种简洁的方法来保存这些相关实体的端到端(razor-to-DBcontext-save)保存吗?

这里有一种1对1的关系

如果在应用程序中有意义的话,一种方法是将
UserDetails
a
ComplexType
,并删除它的
User
属性


这样做的一个副作用是所有数据都将存储在一个表中。

我假设您使用的是代码优先的方法……但我应该先问一下。