sql >> Databasteknik >  >> RDS >> Oracle

Mappning av en främmande nyckel med ett anpassat kolumnnamn

Om du inte vill använda flytande syntax finns det tre andra sätt att implementera referensen med hjälp av datakommentarer (Personligen föredrar jag datakommentarer eftersom de verkar lättare att läsa och är skrivna precis ovanför egenskapen de påverkar):

1.1) Använd ForeignKey (med en tillhörande egenskap) - version 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) Använd ForeignKey (med en tillhörande egenskap) - version 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)Du kan också använda 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. Hur konverterar man effektivt text till nummer i Oracle PL/SQL med icke-standard NLS_NUMERIC_CHARACTERS?

  2. Säkerhetskopiera PostgreSQL med pg_dump och pg_dumpall

  3. PDO::fetchAll vs. PDO::fetch in a loop

  4. Prestanda överraskningar och antaganden:GROUP BY vs. DISTINCT