internal class Coordinate
{
private int Id { get; set; }
public int X { get; set; }
public int Y { get; set; }
}
internal class Square
{
private int Id { get; set; }
public ISet<Coordinate> Coordinates { get; set; } = new HashSet<Coordinate>();
}
internal class CoordinateConfiguration : IEntityTypeConfiguration<Coordinate>
{
private const string ID = "Id";
public void Configure(EntityTypeBuilder<Coordinate> builder)
{
builder.Property<int>(ID).ValueGeneratedOnAdd();
builder.HasKey(ID);
builder.Property(x => x.X).IsRequired();
builder.Property(x => x.Y).IsRequired();
builder.HasIndex(x => x.X);
builder.HasIndex(x => x.Y);
}
}
internal class SquareConfiguration : IEntityTypeConfiguration<Square>
{
private const string ID = "Id";
public void Configure(EntityTypeBuilder<Square> builder)
{
builder.Property<int>(ID).ValueGeneratedOnAdd();
builder.HasKey(ID);
builder.HasMany(x => x.Coordinates)
.WithOne()
// .HasForeignKey() ??
.IsRequired();
builder.Navigation(x => x.Coordinates).AutoInclude();
}
}
internal class Coordinate
{
private int Id { get; set; }
public int X { get; set; }
public int Y { get; set; }
}
internal class Square
{
private int Id { get; set; }
public ISet<Coordinate> Coordinates { get; set; } = new HashSet<Coordinate>();
}
internal class CoordinateConfiguration : IEntityTypeConfiguration<Coordinate>
{
private const string ID = "Id";
public void Configure(EntityTypeBuilder<Coordinate> builder)
{
builder.Property<int>(ID).ValueGeneratedOnAdd();
builder.HasKey(ID);
builder.Property(x => x.X).IsRequired();
builder.Property(x => x.Y).IsRequired();
builder.HasIndex(x => x.X);
builder.HasIndex(x => x.Y);
}
}
internal class SquareConfiguration : IEntityTypeConfiguration<Square>
{
private const string ID = "Id";
public void Configure(EntityTypeBuilder<Square> builder)
{
builder.Property<int>(ID).ValueGeneratedOnAdd();
builder.HasKey(ID);
builder.HasMany(x => x.Coordinates)
.WithOne()
// .HasForeignKey() ??
.IsRequired();
builder.Navigation(x => x.Coordinates).AutoInclude();
}
}