• 18. Februar 2011

Code Only mit Entity Framework CTP 5

Mit Entity Framework CTP 5 steht ein Ausblick auf ein Feature zur Verfügung, welche recht wahrscheinlich in der nächsten Version des Entity Frameworks einzug halten wird: Code Only. Es erlaubt das Mappen von Entitäten auf Tabellen anhand bestimmter Konventionen. Für Fälle, in denen diese Konventionen nicht passen, können Sie über ein Fluent-Interface oder über Attribute abgeändert werden. Diese Vorgehensweise, die sehr an jener von (N)Hibernate erinnert, hat den Vorteil, dass das Entity Data Model wegfällt und sich die Entitäten somit leichter auf verschiedene Assemblies aufteilen lassen. Ferner kann mit dem Entwickeln des OO-Modells in Form von Klassen begonnen werden.

Das nachfolgende Listing liefert einen ersten Vorgeschmack darauf.

public class HotelContext : DbContext
{
    public HotelContext(): base("HotelDb-CodeFirst") { }

    public DbSet<Hotel> Hotels { get; set; }
    public DbSet<Region> Regionen { get; set; }
}


[Table("RegionenTab")]
public class Region
{
    [Key]
    [Column(Name="Region_Code", Order=1)]
    [DatabaseGenerated(DatabaseGenerationOption.None)]
    public virtual int RegionCode { get; set; }

    [MaxLength(27)]
    [Required]
    [Column(Name = "Bez", Order = 3)]
    public virtual string Bezeichnung { get; set; }
    public virtual ICollection<Hotel> Hotels { get; set; }

    public virtual ICollection<Hotel> TopRanked { get; set; }

    [ConcurrencyCheck]
    [Column(Name = "Version", Order = 2, TypeName="bigint")]
    public virtual int Version { get; set; }
}


[ComplexType]
public class Adresse
{
    public virtual string Strasse { get; set; }
    public virtual string Plz { get; set; }
    public virtual string Ort { get; set; }
}

public class Hotel
{
    public virtual int HotelId { get; set; }
    public virtual Adresse Adresse { get; set; }
    public virtual string Bezeichnung { get; set; }
    public virtual int Sterne { get; set; }

    [InverseProperty("TopRanked")]
    public virtual Region TopRankedInRegion { get; set; }

    public virtual int RegionCode { get; set; }

    [TimestampAttribute]
    public virtual byte[] LetzteModifikation { get; set; }

    public virtual double Preis { get; set; }

    [NotMapped]
    public virtual double TouristenPreis { get { return Preis * 2; } }

    public virtual Kategorie Kategorie { get; set; } 

    [ForeignKey("RegionCode")]
    [InverseProperty("Hotels")]
    public virtual Region Region { get; set; } 
    public virtual ICollection<Merkmal> Merkmale { get; set; }
}

 Weitere Infos dazu finden sich in meinem aktuellen Artikel im .NET Magazin.

 

 
Sie wollen mehr zum Thema Code Only mit Entity Framework CTP 5 wissen? Hier können Sie eine Anfrage für eine unverbindliche Schulung ode Beratung bzw. einen Workshop erstellen.
 
Unverbindliche Anfrage
 
 

Schulung und Beratung

Angular

Datenbindung, Formulare, Validierung, Routing, HTTP, Komponenten, ...

Details

Angular: Advanced

Erweiterte Aspekte von Angular

Details

Reaktive Architekturen mit Angular und Redux

Dieses interaktive Seminar vermittelt, wie Sie reaktive Anwendungen mit Angular entwickeln können.

Details

Migration von AngularJS 1.x auf Angular (2+)

Bestehende Projekte auf Angular 2 migrieren, ngUpgrade, ...

Details

Angular Review

Feedback und klärung offener Fragen, weiterführende Themen

Details

Angular Workshop

Start ohne Umwege

Details

Weitere Schulungen ...