C# EF核心一对零关系单向
一对一的关系只能以一种方式建立吗C# EF核心一对零关系单向,c#,entity-framework-core,C#,Entity Framework Core,一对一的关系只能以一种方式建立吗 public class Class1 { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Class1Id { get; set; } ... } public class Class2 { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public
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);
}
public void配置(EntityTypeBuilder)
{
建筑商。ToTable(“…”);
builder.HasOne(m=>m.Relationship)
.WithOne()
.HasForeignKey(a=>a.classaid);
}
但是,当我试图在Class2的一个实例中检查这种关系时,我发现了一些错误。RelationshipId有一个值,Relationship.ClassId有一个不同的值。Relationship.ClassID与Class2Id具有相同的值
Class1是否也需要具有Class2类型的属性才能使EF Core正常工作
Class1是否也需要具有Class2类型的属性才能使EF Core正常工作
否。错误在FK映射中:
.HasForeignKey<Class1>(a => a.Class1Id)
非常感谢你。我想我在看作者和作者传记的例子时会感到困惑,并且混淆了课程
builder.HasOne(e => e.Relationship)
.WithOne()
.HasForeignKey<Class2>(e => e.RelationshipId);
// ^ ^
// (1) (2)