EF Core Fluent API 语句作为数据注释
EF Core Fluent API statement as Data Annotation
我可以在 EF Core 中使用数据注释编写吗?
modelBuilder.Entity<DiagramComponent>()
.HasOne(c => c.Compressor)
.WithMany(c => c.Components);
您必须再创建一个 class:
public class DiagramComponentComponent
{
public int DiagramComponentId { get; set; }
public int ComponentId { get; set; }
[ForeignKey(nameof(DiagramComponentId))]
public virtual DiagramComponent DiagramComponent { get; set; }
[ForeignKey(nameof(ComponentId))]
public virtual Component Component { get; set; }
}
并将属性添加到现有 classes:
public class DiagramComponent
{
public int CompressorId { get; set; }
[ForeignKey(nameof(CompressorId))]
[InverseProperty("DiagramComponents")]
public virtual Compressor Compressor { get; set; }
[InverseProperty(nameof(DiagramComponentComponent.DiagramComponent))]
public virtual ICollection<DiagramComponentComponent> DiagramComponentComponents { get; set; }
}
public class Compressor
{
[InverseProperty(nameof(DiagramComponent.Compressor))]
public virtual ICollection<DiagramComponent> DiagramComponents { get; set; }
}
public class Component
{
[InverseProperty(nameof(DiagramComponentComponent.Component))]
public virtual ICollection<DiagramComponentComponent> DiagramComponentComponents { get; set; }
}
并添加到 dbcontext:
modelBuilder.Entity<DiagramComponentComponent>(entity =>
{
entity.HasOne(d => d.DiagramComponent )
.WithMany()
.HasForeignKey(d => d.DiagramComponentId )
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("FK_DiagramComponentComponent_Component_Diagram");
entity.HasOne(d => d.Component)
.WithMany()
.HasForeignKey(d => d.ComponentId )
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("FK_DiagramComponentComponent_Component");
});
我可以在 EF Core 中使用数据注释编写吗?
modelBuilder.Entity<DiagramComponent>()
.HasOne(c => c.Compressor)
.WithMany(c => c.Components);
您必须再创建一个 class:
public class DiagramComponentComponent
{
public int DiagramComponentId { get; set; }
public int ComponentId { get; set; }
[ForeignKey(nameof(DiagramComponentId))]
public virtual DiagramComponent DiagramComponent { get; set; }
[ForeignKey(nameof(ComponentId))]
public virtual Component Component { get; set; }
}
并将属性添加到现有 classes:
public class DiagramComponent
{
public int CompressorId { get; set; }
[ForeignKey(nameof(CompressorId))]
[InverseProperty("DiagramComponents")]
public virtual Compressor Compressor { get; set; }
[InverseProperty(nameof(DiagramComponentComponent.DiagramComponent))]
public virtual ICollection<DiagramComponentComponent> DiagramComponentComponents { get; set; }
}
public class Compressor
{
[InverseProperty(nameof(DiagramComponent.Compressor))]
public virtual ICollection<DiagramComponent> DiagramComponents { get; set; }
}
public class Component
{
[InverseProperty(nameof(DiagramComponentComponent.Component))]
public virtual ICollection<DiagramComponentComponent> DiagramComponentComponents { get; set; }
}
并添加到 dbcontext:
modelBuilder.Entity<DiagramComponentComponent>(entity =>
{
entity.HasOne(d => d.DiagramComponent )
.WithMany()
.HasForeignKey(d => d.DiagramComponentId )
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("FK_DiagramComponentComponent_Component_Diagram");
entity.HasOne(d => d.Component)
.WithMany()
.HasForeignKey(d => d.ComponentId )
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("FK_DiagramComponentComponent_Component");
});