EF一对一无效

SB2055

我有一个班级用户:

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

因为它将创建一个新BusinessNumberID零;听起来像您遇到的问题。我认为您null最初需要离开的单数

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EF关系一对一

来自分类Dev

EF一对一的必要关系

来自分类Dev

EF 6中的一对一属性不会更新。

来自分类Dev

在EF设计器中创建一对一的参考?

来自分类Dev

EF7一对一关系

来自分类Dev

一对一数据库优先EF

来自分类Dev

EF:一对一关系中的外键?

来自分类Dev

一对一的反身关系 ef core

来自分类Dev

EF代码优先一对一和一对多映射

来自分类Dev

ef core 中同类型的一对一和一对多关系

来自分类Dev

一对一的mysql

来自分类Dev

一对一休眠

来自分类Dev

EF中的一对一仅产生一个外键

来自分类Dev

EF一对一的关系变更实体与另一个(替代)

来自分类Dev

一对零或一对一关系的实体框架(EF)代码优先级联删除

来自分类Dev

EF Core中的一对一关系(无法确定孩子/受抚养人之间的一对一关系)

来自分类Dev

EF代码优先:使用数据注释设置可选的一对一关系

来自分类Dev

一对一关系中的EF LEFT OUTER JOIN而不是INNER JOIN

来自分类Dev

EF Core中的一对一关系提供子项/相关异常

来自分类Dev

EF 6-在没有反向引用的情况下一对一删除

来自分类Dev

是否可以在EF中以一对一关系分配外键?

来自分类Dev

当相关表首先引用时一对一的 EF 迁移问题

来自分类Dev

与 EF 中的许多表建立一对一关系

来自分类Dev

FK一对一约束

来自分类Dev

气氛框架一对一聊天

来自分类Dev

教义一对一的加入

来自分类Dev

休眠中的异常(一对一)

来自分类Dev

简化多个一对一的聚合

来自分类Dev

一对一的选择限制