【发布时间】:2018-03-02 13:42:32
【问题描述】:
只能以一种方式创建一对一关系吗?
public class Class1
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Class1Id { get; set; }
...
}
public class Class2
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Class2Id { get; set; }
public int? RelationshipId { get; set; }
public virtual Class1 Relationship { get; set; }
...
}
而配置是这样的
public void Configure(EntityTypeBuilder<Class2> builder)
{
builder.ToTable("...");
builder.HasOne(m => m.Relationship)
.WithOne()
.HasForeignKey<Class1>(a => a.Class1Id);
}
但是当我尝试检查 Class2 实例中的关系时,我得到了一些错误。 RelationshipId 有一个值,Relationship.Class1Id 有一个不同的值。 Relationship.Class1Id 与 Class2Id 具有相同的值。
Class1 是否还需要具有 Class2 类型的属性才能使 EF Core 正常工作?
【问题讨论】: