我有一个班级用户:
[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; }
}
使用以下映射:
public class NumberConfiguration : EntityTypeConfiguration<BusinessNumber> {
public NumberConfiguration() {
HasKey(c => c.UserId);
Property(c => c.UserId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
HasRequired(c => c.User).WithRequiredDependent(s => s.BusinessNumber);
}
}
以下代码将产生一个新的BusinessNumber,而没有提供ID。如果检查数据库,则会看到具有ID的User和具有ID1
的BusinessNumber 1
,但user.BusinessNumber.Id为0。
var user = db.Users.First(s => s.Username == username);
我尝试使用,Include
但出现多重错误:
var user = db.Users.Include(s => s.BusinessNumber).First(s => s.Username == username);
我究竟做错了什么?
您确定此代码正确吗:
public User()
{
BusinessNumber = new BusinessNumber();
}
因为它将创建一个新BusinessNumber
的ID
零;听起来像您遇到的问题。我认为您null
最初需要离开的单数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句