Ich frage mich, ob es möglich ist, eine Tabelle mit vielen zu machen.Entity Framework Eins-zu-Null mit verschiedenen Tabellen
Das ist, was ich habe jetzt (Arbeits Eins-zu-Null-oder-eins-Beziehung zwischen Report
und ReportHeader
):
public class Report
{
public int Id {get; set;}
public ReportHeader ReportHeader {get; set;}
[ForeignKey("ReportHeader")]
public int ReportHeaderId {get; set;}
}
public class ReportHeader
{
[Key, ForeignKey("Report")]
public int Id {get; set;}
public Report Report {get; set;}
}
An dieser Stelle möchte ich Tabelle mit dem Namen Style
-Report
hinzuzufügen, sondern auch auf Tabelle ReportHeader
. So würden die Beziehungen wie folgt aussehen:
Report
|--ReportHeader
| |-- Style
|
|-- Style
Danach werden die Klassen sollte folgendermaßen aussehen:
public class Report
{
public int Id {get; set;}
public ReportHeader ReportHeader {get; set;}
public Style Style {get; set;}
[ForeignKey("ReportHeader")]
public int ReportHeaderId {get; set;}
[ForeignKey("Style")]
public int StyleId {get; set;}
}
public class ReportHeader
{
[Key, ForeignKey("Report")]
public int Id {get; set;}
[ForeignKey("Style")]
public int StyleId {get; set;}
public Report Report {get; set;}
public Style Style {get; set;}
}
Das ist so viel Spaß ..., bis es über die Style
Klasse denken kommt. An dieser Stelle habe ich keine Ahnung, wie ich es gestalten soll. Ist es überhaupt möglich, diese Klasse in zwei Relationen mit verschiedenen Tabellen zu bringen?
public class Style
{
// ???
//[Key, ForeignKey("Report"), ForeignKey("ReportHeader")]
public int Id {get; set;}
public ReportHeader ReportHeader {get; set;}
public Report Report {get; set;}
}
Was die Beziehungen zwischen Bericht-Style und Report-Style erwünscht ist ? –
Nun, Ihr 'Style' muss zwei (optionale) FK-Beziehungen haben - eine zu' Report' und die andere zu 'ReportHeader'. Fügen Sie also zwei FK-Spalten und entsprechend zwei Navigationseigenschaften für diese beiden Referenzen hinzu. –
@Slava Utesinov Bericht-Stil 1: 1, ReportHeader-Stil 1: 0..1 –