C# EF一对一不工作

C# EF一对一不工作,c#,entity-framework,ef-code-first,C#,Entity Framework,Ef Code First,我有一个类用户: [Table("User")] public class User { public User() { BusinessNumber = new BusinessNumber(); } [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int UserId { get; set; } public string Username

我有一个类用户:

[Table("User")]
public class User {

    public User() {
        BusinessNumber = new BusinessNumber();
    }

    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string Username { get; set; }

    [Required]
    public virtual BusinessNumber BusinessNumber { get; set; }

}
和业务编号:

public class BusinessNumber {

    public BusinessNumber() {
        Subscribers = new List<SubscriberNumber>();
    }

    [Key, ForeignKey("User")]
    public int UserId { get; set; }
    public string Sid { get; set; }
    public string PhoneNumber { get; set; }
    public string VenueName { get; set; }
    public virtual User User { get; set; }
    public List<SubscriberNumber> Subscribers { get; set; }

}

public class SubscriberNumber {

    public SubscriberNumber() {}

    [Key]
    public int SubscriberNumberId { get; set; }
    public string PhoneNumber { get; set; }

}
我尝试使用
包含
,但出现了多重性错误:

var user = db.Users.Include(s => s.BusinessNumber).First(s => s.Username == username);

我做错了什么?

您确定此代码正确吗:

public User() 
{
   BusinessNumber = new BusinessNumber();
}
因为它将创建一个新的
BusinessNumber
,ID为
0;听起来像是你遇到的问题。我认为奇点最初需要离开
null

var user = db.Users.Include(s => s.BusinessNumber).First(s => s.Username == username);
public User() 
{
   BusinessNumber = new BusinessNumber();
}