Was ist der Zweck der Code
Eigenschaft von InheritanceMappingAttribute
Attribut? Die Dokumentation besagt, dass es sich um die IsDiscriminator
Eigenschaft handelt. Allerdings kenne ich die IsDiscriminator
Eigenschaft auch nicht.LINQ VererbungMappingAttribute Code Eigenschaft
Ich lese dieses exemple:
public enum ShapeType
{
Square = 0, Circle = 1
}
[Table(Name = "Shape")]
[InheritanceMapping(Code = ShapeType.Square, Type = typeof(Square),
IsDefault = true)]
[InheritanceMapping(Code = ShapeType.Circle, Type = typeof(Circle))]
abstract public class Shape
{
[Column(IsDiscriminator = true)]
public ShapeType ShapeType = 0;
}
public class Square : Shape
{
[Column]
public int Side = 0;
}
public class Circle : Shape
{
[Column]
public int Radius = 0;
}
Auf meinem Fall habe ich drei Tabellen, Persons
, Clients
, Functionaries
. Und drei Klassen Person
(Zusammenfassung), Client
und Functionary
. Das heißt, in Person
Tabelle sind die gemeinsamen Daten zwischen Client
und Functionary
. In der Clients
Tabelle sind die Daten von Client
. Und in der Functionaries
Tabelle sind die Daten von Functionary
.
Wie funktioniert das Mapping in diesem Fall?