实体框架关系:实体相互引用

时间:2018-09-09 07:48:45

标签: entity-framework asp.net-web-api ef-core-2.0 ef-core-2.1

如何正确建立关系:

有一个所有者,所有者有一个卡。

Card:
- Id
- OwnerId
- Number

Owner:
- Id
- CardId
- Name

当我更新卡的所有者(OwnerId)时,我需要自动更新所有者的CardId(以前删除并将CardId设置为新的所有者)

1 个答案:

答案 0 :(得分:-1)

映射@OneToOne关系的最佳方法是使用@MapsId。

@Entity(name = "Owner")
public class Owner {

    @Id
    @GeneratedValue
    private Long id;

    private String name;

    ...
    //Getters and setters omitted for brevity

}
@Entity(name = "Card")
public class Card {

    @Id
    private Long id;

    private String name;

    @OneToOne(fetch = FetchType.LAZY)
    @MapsId
    private Owner owner;

    ...

    //Getters and setters omitted for brevity
}

我不确定我是否理解您的问题,但是身份不会随时间变化。