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();
}