Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Entity Framework Code First End to End

Entity Framework Code First End to End

This session will cover the use Entity Framework in .NET based applications. Discussion will include model creation and organization as well as schema evolution via migrations. The role of data annotations in Entity Framework model creation and validation will be highlighted. Key issues in achieving performance will be part of the talk, including ability to embed stored procedures when necessary. Creation of a maintainable data access layer via use of repositories will be illustrated. An ASP.NET MVC application will be built throughout the talk to illustrate the concepts.

SergeyBarskiy

August 25, 2013
Tweet

More Decks by SergeyBarskiy

Other Decks in Programming

Transcript

  1. INTRODUCTION TO EF • ENTITY FRAMEWORK IN MICROSOFT’S ORM TOOL

    • HAS BEEN OUT SINCE 2008 • CODE FIRST HAS BEEN OUT SINCE 2011
  2. 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
  3. SEPARATION OF CONCERNS • EF IS DAL TECHNOLOGY • ISOLATION

    FROM OTHER LAYERS • PATTERNS • REPOSITORY • DATA MAPPER • TABLE DATA GATEWAY • ROW DATA GATEWAY • DATA MAPPER
  4. 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
  5. DEVELOPING MODEL • CONFIGURATION OPTIONS • CONFIGURATION CLASSES • ATTRIBUTES?

    • HANDLING RELATIONSHIPS • RELATIONSHIP TYPES • USING FOREIGN KEY COLUMNS • USING COMPLEX TYPES • LEGACY DATABASES / EXPLICIT MAPPINGS
  6. HANDLING SCHEMA CHANGES • CODE FIRST MIGRATIONS • CREATE DATABASE

    • MAINTAIN SCHEMA • COMMAND LINE MIGRATIONS • EXPLICIT VS. IMPLICIT MIGRATIONS • INITIALIZERS (FOR RAPID PROTOTYPING) • MIGRATING INITIALIZER
  7. 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?
  8. WORKING WITH VIEWS AND STORED PROCEDURES • EF IS NOT

    ALL-OR-NOTHING ANSWERS • WRITING CLASSES FOR MATERIALIZATION • AVOIDING SQL INJECTION
  9. PERFORMANCE • CACHING CONTEXT • WEB ENVIRONMENTS • CRUD EFFICIENCIES

    • UPDATE • DELETE • SELECT • LAZY LOADING • BEWARE OF MULTIPLE QUERIES
  10. WHAT’S NEW IN EF 6 • ASYNCHRONOUS SUPPORT • CONNECTION

    RESILIENCY • IMPROVED PERFORMANCE • MANY MORE