Ist es möglich, eine Eins-zu-eins-Beziehung mit dem Elternschlüssel und einem Diskriminatorwert zuzuordnen? Ich weiß, dass der Code die Diskriminatoreigenschaft der konkreten Klasse zuerst nicht mag und nur in der Map-Methode referenziert.Wie wird der Vererbungsdiskriminator als zusammengesetzter Schlüssel in Entity Framework abgebildet?
FlightTypes { Inbound = 1, Outbound = 2}
public class Transaction
- int TransactionId
- int? InboundFlightId
- InboundTransactionFlight InboundFlight
- int? OutboundFlightId
- OutboundTransactionFlight OutboundFlight
public abstract class TransactionFlight
- TransactionFlightId
public class InboundTransactionFlight : Flight
- List<Transaction> InboundFor
public class OutboundTransactionFlight : Flight
- List<Transaction> OutboundFor
Entity<InboundTransactionFlight>().Map(m => m.Requires("FlightTypeId").HasValue(1));
Entity<OutboundTransactionFlight>().Map(m => m.Requires("FlightTypeId").HasValue(2));
/* das, was derzeit erzeugt */
CREATE TABLE Transactions (
TransactionId int NOT NULL,
InboundFlightId int NULL,
OutboundFlightId int NULL
)
CREATE TABLE TransactionFlights (
TransactionFlightId int NOT NULL,
FlightTypeId int NOT NULL,
...
CONSTRAINT PK_TransactionFlights PRIMARY KEY CLUSTERED (TransactionFlightId)
)
/* ist es möglich, dies zu generieren/Karte und Erbe behalten? */
CREATE TABLE Transactions (
TransactionId int NOT NULL,
)
CREATE TABLE TransactionFlights (
TransactionId int NOT NULL,
FlightTypeId int NOT NULL,
...
CONSTRAINT PK_TransactionFlights PRIMARY KEY CLUSTERED (TransactionId, FlightTypeId)
)
Danke.
Das ist ein sehr guter Punkt Ladislav und beantwortet sicherlich die Frage für mich. EF hat meine Datenbankdesigngewohnheiten sicherlich in Frage gestellt. Zum besseren glaube ich. –
Sie hätten zwar nur lesen dürfen ... – VdesmedT