Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Memetakan kunci asing dengan nama kolom khusus

Jika Anda tidak ingin menggunakan sintaks yang lancar, ada tiga cara lain untuk menerapkan referensi menggunakan anotasi data (Secara pribadi saya lebih suka anotasi data karena tampaknya lebih mudah dibaca dan ditulis tepat di atas properti yang terpengaruh):

1.1)Gunakan ForeignKey (dengan properti terkait) - versi 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)Gunakan ForeignKey (dengan properti terkait) - versi 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)Anda juga dapat menggunakan 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; }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat Pengguna Oracle Baru dan Berikan Hak Istimewa:Sintaks dan Contoh

  2. ORDER BY dengan kueri dalam, memberikan ORA-00907 tanda kurung kanan yang hilang

  3. SQL*Plus bagaimana cara menerima variabel teks dari prompt?

  4. Memperbaiki kesalahan ORA-65096 saat membuat tes otomatis di Django menggunakan Oracle

  5. 50 Nuansa Ujian Sertifikasi Database Oracle