Stuart Leitch “Code First” & DbContext
ObjectContext DbContext DbSet ObjectSet Entity Client Conceptual / Mapping / Logical Should have been V1 Simplifies Discoverability Does not replace Needed backward compatibility Wraps ObjectContext ObjectContext accessible Recommended for all approaches Use ObjectContext only when needed.
Database First Model First Code First
Existing Database / DBA Maximum control Full T4 Template support (Self Tracking etc.) Not great with large models (50+ tables) Source Control merging headaches (XML)
Generate Database / Migrate Like to “Draw” model / Designer Fan Less database centric Full T4 Template support Source Control merging nightmare (XML)
Code Oriented / Dumb down DB No automated migration support (vNext) No T4 Template support / Self Tracking (yet) Source Control Branch friendly Cross EDMX easy No SP’s, Compiled Queries
Demo scenario / Client Brief Creating the model in Code Basics & conventions Data annotations / Fluent API Relationships, inheritance, hierarchies & complex types Database generation & Seed data Using the model with DbContext LINQ, Find / Local (cached) Lazy Loading, Prefetching Concurrency Common Patterns
Web store with orders
RTW releases this month (likely at MIX) Coming soon: Self Tracking Entities Migrations Enum Support Stored Procedure Support