13
Entity Framework Code First End to End Sergey Barskiy Architect, Tyler Technologies Level: Introductory to Intermediate

Entity Framework Code First End to End Sergey Barskiy Architect, Tyler Technologies Level: Introductory to Intermediate

Embed Size (px)

Citation preview

Page 1: Entity Framework Code First End to End Sergey Barskiy Architect, Tyler Technologies Level: Introductory to Intermediate

Entity Framework Code First End to End

Sergey BarskiyArchitect, Tyler Technologies

Level: Introductory to Intermediate

Page 2: Entity Framework Code First End to End Sergey Barskiy Architect, Tyler Technologies Level: Introductory to Intermediate

Introduction to EF

• 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 End to End Sergey Barskiy Architect, Tyler Technologies Level: Introductory to Intermediate

Why Entity Framework Code First

• ORM• Code / type safety• Rapid application development and

prototyping• Supported and developed by Microsoft• Continuous commitment from Microsoft• Open sourced• Testable• Flexible / Conventions and configurations

Page 4: Entity Framework Code First End to End Sergey Barskiy Architect, Tyler Technologies Level: Introductory to Intermediate

Approaches

• DAL?• Business Layer?• UI?

Page 5: Entity Framework Code First End to End Sergey Barskiy Architect, Tyler Technologies Level: Introductory to Intermediate

Separation of Concerns

• EF is DAL technology• Isolation from other layers• Patterns

– Repository– Data Mapper– Table Data Gateway– Row Data Gateway– Data Mapper

Page 6: Entity Framework Code First End to End Sergey Barskiy Architect, Tyler Technologies Level: Introductory to Intermediate

DAL Strategy

• Keep Data (Table) Objects clean• Separate data access from DTOs• Create Access Interface• Expose Data Access in a service layer with

business objects• Using Mappers to cut down on code

Page 7: Entity Framework Code First End to End Sergey Barskiy Architect, Tyler Technologies Level: Introductory to Intermediate

Developing Model

• Configuration Options– Configuration classes– Attributes?

• Handling Relationships– Relationship Types– Using foreign key columns

• Using Complex types• Legacy databases / explicit mappings

Page 8: Entity Framework Code First End to End Sergey Barskiy Architect, Tyler Technologies Level: Introductory to Intermediate

Creating Data Access Layer

• Repository Pattern– Mediates between the domain and data mapping

layers using a collection-like interface for accessing domain objects.

– Interface based repository– CQRS– Write vs. Read Repository– Taking dependency on IQueryable?

Page 9: Entity Framework Code First End to End Sergey Barskiy Architect, Tyler Technologies Level: Introductory to Intermediate

Working with Views and Stored Procedures

• EF is not all-or-nothing answers• Writing classes for materialization• Avoiding SQL injection

Page 10: Entity Framework Code First End to End Sergey Barskiy Architect, Tyler Technologies Level: Introductory to Intermediate

Handling Schema Changes

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

• Explicit vs. Implicit Migrations• Initializers (for rapid prototyping)• Migrating initializer

Page 11: Entity Framework Code First End to End Sergey Barskiy Architect, Tyler Technologies Level: Introductory to Intermediate

Performance

• Caching Context• Web environments

• CRUD Efficiencies– Update– Delete– Select

• Lazy Loading– Beware of multiple queries

Page 12: Entity Framework Code First End to End Sergey Barskiy Architect, Tyler Technologies Level: Introductory to Intermediate

Demo Solution

• ASP.NET MVC• Layer Separation via Projects•

Page 13: Entity Framework Code First End to End Sergey Barskiy Architect, Tyler Technologies Level: Introductory to Intermediate

Contact Info

[email protected]• www.DotNetSpeak.com