entity framework code first – beyond the basics

15
S Entity Framework Code First – Beyond the Basics Sergey Barskiy, Magenic Microsoft MVP – Data Platform Principal Consultant

Upload: elaina

Post on 24-Feb-2016

90 views

Category:

Documents


0 download

DESCRIPTION

Entity Framework Code First – Beyond the Basics. Sergey Barskiy, Magenic Microsoft MVP – Data Platform Principal Consultant. Entity Framework Code First. Entity Framework in Microsoft’s ORM Tool Has been out since 2008 Code First has been out since 2011. Handling Schema Changes. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Entity Framework Code First – Beyond the Basics

S

Entity Framework Code First –

Beyond the BasicsSergey Barskiy, Magenic

Microsoft MVP – Data PlatformPrincipal Consultant

Page 2: Entity Framework Code First – Beyond the Basics

Entity Framework Code First

Entity Framework in Microsoft’s ORM Tool• Has been out since 2008• Code First has been out since 2011

Page 3: Entity Framework Code First – Beyond the Basics

Handling Schema Changes

Code First Migrations• Create database• Maintain schema• Command line migrations

Custom Migrations• Using 3rd Party tooling

Page 4: Entity Framework Code First – Beyond the Basics

Code First Migrations

Enable automatic migrations Update-Database

Has to be run to create database Add-Migration

Add manual migration Up / Down methods Supplying default values for non-nullable columns

MigrateDatabaseToLatestVersion<T,C>

Page 5: Entity Framework Code First – Beyond the Basics

Code First Migrations

DbMigration API Index Rename

Update-Database –TargetMigration: (can be used to rollback)

Migrate.exe Create script

Page 6: Entity Framework Code First – Beyond the Basics

Performance

Caching Context• Web environments

CRUD Efficiencies Update Delete Insert Select

When used in services, disable Lazy Loading Proxy Creation

Page 7: Entity Framework Code First – Beyond the Basics

Performance

Auto Compiled Queries (v5), etc… View generation

http://blogs.msdn.com/b/adonet/archive/2012/04/09/ef-power-tools-beta-2-available.aspx

Lazy vs. Eager Loading White Paper http://

msdn.microsoft.com/en-us/data/hh949853 Upgrade server to .NET 4.5 to take advantage

Page 8: Entity Framework Code First – Beyond the Basics

DbEntityEntry State Current, Original, Database values ComplexProperty Entity Reload GetValidationResult Access to see if a scalar property was modified

(requires all properties to be virtual)

Page 9: Entity Framework Code First – Beyond the Basics

Organizing the Model

Hierarchies• Table per hierarchy

• Types in an inheritance hierarchy are mapped to a single table. A condition clause is used to define the entity types

• Table per type• Types are all mapped to individual tables. Properties

that belong solely to a base type or derived type are stored in a table that maps to that type

• Table per concrete type• Non-abstract types are each mapped to an individual

table. Each of these tables must have columns that map to all of the properties of the derived type, including the properties inherited from the base type

Page 10: Entity Framework Code First – Beyond the Basics

Organizing the Model

Complex Types• A complex type is a non-scalar property of an entity

type that does not have a key property. A complex type can contain other nested complex types.

Entity Splitting• Properties from a single entity in the conceptual

model are mapped to columns in two or more underlying tables.

Excluding Types and Properties• Properties and/or classes are excluded from storage.

Explicit Mapping of Types and Properties

Page 11: Entity Framework Code First – Beyond the Basics

Relationships

Relationships• All are supported• One-to-one needs explicit configuration

Cascading deletes

Page 12: Entity Framework Code First – Beyond the Basics

More…

Working with Views and Stored Procedures

Page 13: Entity Framework Code First – Beyond the Basics

More…

Create your own repository• Create/Update/Delete• Select

Conventions Creating your own conventions V6 Preview

Page 14: Entity Framework Code First – Beyond the Basics

RDBMS Providers

Available providers• DevArt• DataDirect• Oracle• MySQL.etc…

Mileage may vary