♻️ Use inheritance, use properties for FK

to prepare for many-to-many with TurnEntity
pull/191/head
Alexis Drai 2 years ago
parent c7aac52f48
commit 7fd6078c25

@ -1,16 +1,9 @@
using Data.EF.Dice.Faces; using Data.EF.Dice.Faces;
using Model.Dice.Faces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Data.EF.Dice namespace Data.EF.Dice
{ {
public class ColorDieEntity public class ColorDieEntity : DieEntity
{ {
public Guid Id { get; set; } public new ICollection<ColorFaceEntity> Faces { get; set; }
public ICollection<ColorFaceEntity> Faces { get; set; }
} }
} }

@ -0,0 +1,19 @@
using Data.EF.Dice.Faces;
using Data.EF.Games;
using Data.EF.Joins;
using System.ComponentModel.DataAnnotations.Schema;
namespace Data.EF.Dice
{
/// <summary>
/// not designed to be instantiated, but not abstract in order to allow extensions
/// </summary>
///
public class DieEntity
{
public Guid ID { get; set; }
public ICollection<TurnEntity> Turns { get; set; } // many to many
public List<DieTurn> DieTurns { get; set; }
public ICollection<FaceEntity> Faces { get; set; } // one to many
}
}

@ -1,20 +1,15 @@
using Model.Dice; using System.Drawing;
using System;
using System.ComponentModel.DataAnnotations.Schema;
using System.Drawing;
namespace Data.EF.Dice.Faces namespace Data.EF.Dice.Faces
{ {
public class ColorFaceEntity public class ColorFaceEntity : FaceEntity
{ {
public Guid ID { get; set; }
public byte A { get; set; } public byte A { get; set; }
public byte R { get; set; } public byte R { get; set; }
public byte G { get; set; } public byte G { get; set; }
public byte B { get; set; } public byte B { get; set; }
[ForeignKey("ColorDieFK")] public Guid ColorDieEntityID { get; set; }
public ColorDieEntity ColorDieEntity { get; set; } public ColorDieEntity ColorDieEntity { get; set; }
public void SetValue(Color c) public void SetValue(Color c)

@ -0,0 +1,15 @@
using Data.EF.Games;
using Data.EF.Joins;
namespace Data.EF.Dice.Faces
{
/// <summary>
/// not designed to be instantiated, but not abstract in order to allow extensions
/// </summary>
public class FaceEntity
{
public Guid ID { get; set; }
public ICollection<TurnEntity> Turns { get; set; } // many to many
public List<FaceTurn> FaceTurns { get; set; }
}
}

@ -1,19 +1,9 @@
using Model.Dice; namespace Data.EF.Dice.Faces
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Data.EF.Dice.Faces
{ {
public class ImageFaceEntity public class ImageFaceEntity : FaceEntity
{ {
public Guid ID { get; set; }
public string Value { get; set; } public string Value { get; set; }
public Guid ImageDieEntityID { get; set; }
[ForeignKey("ImgDieFK")]
public ImageDieEntity ImageDieEntity { get; set; } public ImageDieEntity ImageDieEntity { get; set; }
} }
} }

@ -1,19 +1,9 @@
using Model.Dice; namespace Data.EF.Dice.Faces
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Data.EF.Dice.Faces
{ {
public class NumberFaceEntity public class NumberFaceEntity : FaceEntity
{ {
public Guid Id { get; set; }
public int Value { get; set; } public int Value { get; set; }
public Guid NumberDieEntityID { get; set; }
[ForeignKey("NumDieFK")]
public NumberDieEntity NumberDieEntity { get; set; } public NumberDieEntity NumberDieEntity { get; set; }
} }
} }

@ -1,16 +1,9 @@
using Data.EF.Dice.Faces; using Data.EF.Dice.Faces;
using Model.Dice.Faces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Data.EF.Dice namespace Data.EF.Dice
{ {
public class ImageDieEntity public class ImageDieEntity : DieEntity
{ {
public Guid Id { get; set; } public new ICollection<ImageFaceEntity> Faces { get; set; }
public ICollection<ImageFaceEntity> Faces { get; set; }
} }
} }

@ -1,16 +1,9 @@
using Data.EF.Dice.Faces; using Data.EF.Dice.Faces;
using Model.Dice.Faces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Data.EF.Dice namespace Data.EF.Dice
{ {
public class NumberDieEntity public class NumberDieEntity : DieEntity
{ {
public Guid Id { get; set; } public new ICollection<NumberFaceEntity> Faces { get; set; }
public ICollection<NumberFaceEntity> Faces { get; set; }
} }
} }

Loading…
Cancel
Save