यदि आप धाराप्रवाह सिंटैक्स का उपयोग नहीं करना चाहते हैं, तो डेटा एनोटेशन का उपयोग करके संदर्भ को लागू करने के तीन अन्य तरीके हैं (व्यक्तिगत रूप से मैं डेटा एनोटेशन पसंद करता हूं क्योंकि वे पढ़ने में आसान लगते हैं और उस संपत्ति के ठीक ऊपर लिखे जाते हैं जो वे प्रभावित कर रहे हैं):
1.1) विदेशीकी का उपयोग करें (एक संबद्ध संपत्ति के साथ) - संस्करण 1
[Table("WIDGETENTITIES")]
public class WidgetEntity {
[Column("WIDGETENTITY_ID")]
public int Id { get; set; }
[Column("WIDGETSEQUENCE_ID")]
public int WidgetSequenceId { get; set; }
[ForeignKey("WidgetSequenceId")] //Has to be a property name, not table column name
public WidgetSequence Sequence { get; set; }
// and other properties that map correctly
}
[Table("WIDGETSEQUENCES")]
public class WidgetSequence {
[Column("WIDGETSEQUENCE_ID")]
public int Id { get; set; }
[Column("NUMBER")]
public int Number { get; set; }
}
1.2)विदेशीकी का उपयोग करें (एक संबद्ध संपत्ति के साथ) - संस्करण 2
[Table("WIDGETENTITIES")]
public class WidgetEntity {
[Column("WIDGETENTITY_ID")]
public int Id { get; set; }
[ForeignKey("Sequence")] //Has to be a property name, not table column name
[Column("WIDGETSEQUENCE_ID")]
public int WidgetSequenceId { get; set; }
public WidgetSequence Sequence { get; set; }
// and other properties that map correctly
}
[Table("WIDGETSEQUENCES")]
public class WidgetSequence {
[Column("WIDGETSEQUENCE_ID")]
public int Id { get; set; }
[Column("NUMBER")]
public int Number { get; set; }
}
2) आप InversePropertyAttribute का भी उपयोग कर सकते हैं।
[Table("WIDGETENTITIES")]
public class WidgetEntity {
[Column("WIDGETENTITY_ID")]
public int Id { get; set; }
[InverseProperty("WidgetEntities")]
public WidgetSequence Sequence { get; set; }
// and other properties that map correctly
}
[Table("WIDGETSEQUENCES")]
public class WidgetSequence {
[Column("WIDGETSEQUENCE_ID")]
public int Id { get; set; }
[Column("NUMBER")]
public int Number { get; set; }
public virtual List<WidgetEntity> WidgetEntities { get; set; }
}