Download - Entity Framework Code First .NET User Group Köln 11. Januar 2011

Transcript
Page 1: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Entity Framework Code FirstDatenbanken ohne Designer

Page 2: Entity Framework Code First .NET User Group Köln 11. Januar 2011

ADO.NET Entity Framework Code First• Code First• Mapping von Klassen zu Datenbank-Tabellen• Konvention über Konfiguration• Eigenen Konventionen sind möglich• und/oder „manuell“ Konfigurierbar über Code

(Fluent)

Page 3: Entity Framework Code First .NET User Group Köln 11. Januar 2011

ADO.NET Entity Framework Code First• Code First• Mapping von Klassen zu Datenbank-Tabellen• Konvention über Konfiguration• Eigenen Konventionen sind möglich• und/oder „manuell“ Konfigurierbar über Code

(Fluent)

Page 4: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Einfaches Setup• Install-package EFCodeFirst

• oder Referezierung der EntityFramework.dll

• Referenzierung System.Data.Entity.dll

Page 5: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Einfaches VerwendungPOCO Context erstellen

Page 6: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Einfaches VerwendungAutomatisch beim ersten

Zugriff auf den DbContext!

Automatisch beim beim

erstellen der Datenbank

Beim Programmstart

initializieren

Page 7: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Verwendung im Code

Page 8: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Objekt Model

Page 9: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Vergleich Klasse und Tabelle->Person

Class Table

Page 10: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Vergleich AddressClass Table

Page 11: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Vergleich ContactClass Table

Page 12: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Vergleich CompanyClass Table

Page 13: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Vererbung in der Datenbank

Page 14: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Eine Tabelle per Hierachie (TPH)

Page 15: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Vererbung in der Datenbank

0:NBeziehung entfernt

Problem mit CTP 5 und

TPT

Page 16: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Eine Tabelle pro Type (TPT)

Page 17: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Vererbung in der Datenbank

Page 18: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Eine Tabelle pro konkretem Type (TPC)

Page 19: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Vererbung in der Datenbank

Page 20: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Property Mapping to Colum

Page 21: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Property Mappings

Page 22: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Eigenen Discriminator

Page 23: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Tabellen Splitting

Page 24: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Tabellen Splitting

Page 25: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Eigene N:M Tabelle angeben

Page 26: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Eigenschaften Ignorieren

Page 27: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Die Property Id ist der Primary Key

Page 28: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Konventionen• Type (System)• PropertyInfo (System.Reflection)

• ModelConfiguration (System.Data.Entity.ModelConfiguration.Configuration)

• EntityTypeConfiguration (System.Data.Entity.ModelConfiguration.Configuration.Types)

• PropertyConfiguration (System.Data.Entity.ModelConfiguration.Configuration.Properties)

Page 29: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Die Property Class-Name+“Key“ ist der Primary Key

Page 30: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Konventionen• Type (System)• PropertyInfo (System.Reflection)

• ModelConfiguration (System.Data.Entity.ModelConfiguration.Configuration)

• EntityTypeConfiguration (System.Data.Entity.ModelConfiguration.Configuration.Types)

• PropertyConfiguration (System.Data.Entity.ModelConfiguration.Configuration.Properties)

• PrimitivePropertyConfiguration• DateTimePropertyConfigura

tion • DecimalPropertyConfigurati

on• LengthPropertyConfiguratio

n• StringPropertyConfigurati

on • BinaryPropertyConfigurat

ion

Page 31: Entity Framework Code First .NET User Group Köln 11. Januar 2011

ColumnName für PrimaryKey

Page 32: Entity Framework Code First .NET User Group Köln 11. Januar 2011

Nachlesen

• http://blogs.msdn.com/b/adonet/