2017-09-21 3 views
0

Ich versuche, in POCO zu bleiben, aber ich bin in einer Sackgasse:FK Spalte mulitple Tabellen POCO

Public class Alpha() 
{ 
     public int ID { get; set; } 
     [ForeignKey("")] 
     public int BetaId { get; set; } 

     public virtual BetaA BetaA{ get; set; } 
     public virtual BetaB BetaB{ get; set; } 
} 

Public class BetaA() 
{ 
     public int ID { get; set; } 
} 

Public class BetaB() 
{ 
     public int ID { get; set; } 
} 

Wie bekomme ich Alpha.BetaId beide ForeignKey zu BetaA.ID und Betab zu sein .ID in POCO?

Wenn jemand anderes Stolpern, um dieses

Lösung verwendete ich

Public class Alpha() 
{ 
     public int ID { get; set; } 
     public int BetaId { get; set; } 

     [ForeignKey("BetaId")]  
     public virtual BetaA BetaA{ get; set; } 
     [ForeignKey("BetaId")] 
     public virtual BetaB BetaB{ get; set; } 
} 

Public class BetaA() 
{ 
     public int ID { get; set; } 
} 

Public class BetaB() 
{ 
     public int ID { get; set; } 
} 

Antwort

0

haben betaA und Betab ein Primärschlüssel dann Betab über betaA

Referenz teilen

Sie können auch die nav Eigenschaften dekorieren mit dem Fremdschlüsselattribut und spezifiziere die Int-Eigenschaft als FK für beide, obwohl ich dieses Szenario nicht selbst getestet habe (ich bin auf einem mobilen Gerät). Probieren Sie es aus und lassen Sie es mich wissen!

+0

Vielen Dank! Ich dekorierte Nav-Eigenschaft. –

+0

Meine Sorge mit diesem Ansatz ist, was passiert, wenn Sie BetaA und BetaB mit verschiedenen ID-Werten zuweisen - einer der beiden erwarteten Werte wird nicht speichern – Moho

+0

Hmm .. Ich sehe Ihren Punkt - aber wegen des ETL-Prozesses sollten diese Werte nicht erlaubt sein, eingefügt zu werden. –

Verwandte Themen