180 likes | 432 Views
Entity Framework. Object Relational Mapping – ORM Entity Framework. ORM?. Objects vs. Relations. Relational. Object-Relational Impedance Mismatch. Object-Oriented. Based on proven software engineering principles. Entry point is behaviour
E N D
Entity Framework Object Relational Mapping – ORM Entity Framework C# kursusRohde & Schwarz
ORM? C# kursus Rohde & Schwarz
Objects vs. Relations C# kursus Rohde & Schwarz
Relational Object-Relational Impedance Mismatch Object-Oriented • Based on proven software engineering principles. • Entry point is behaviour • Object collections and associations derived from graph theory • Based on proven mathematical principles. • Entry point is data • Data collections and associations derived from set theory C# kursus Rohde & Schwarz
A Physical Data Model C# kursus Rohde & Schwarz
A Class Model C# kursus Rohde & Schwarz
Class Model Differences Physical Data Model C# kursus Rohde & Schwarz
Benefits Of O/R Mapping C# kursus Rohde & Schwarz • Clean OO design • Hiding the relational model specifics lets the object model be more cleanly analyzed and applied. • Productivity • Simpler code as the object model is free from persistence constraints. Developers can navigate object hierarchies, etc. • Separation of concerns and specialization • Let the DB people worry about DB structure and the Object people worry about their OO models. • Time savings • The O/R mapping layer saves you from writing the code to persist and retrieve objects. O/R mapping tool vendors claim 20-30% reduction in the code that needs to be written. Writing less code also means less testing.
Drawbacks Of O/R Mapping C# kursus Rohde & Schwarz • Usually commit the "Needless Repetition" deadly sin (a.k.a. DRY – "Don't Repeat Yourself“) • The table structure as well as their relations are stored both in the DB and in the mapping files used by the O/R mapper • Writing mapping files is a huge task • Needs to be updated every time the database layout is changed • Queries • Limited query capabilities… • … or performance problems on complicated queries • Some O/R mappers implement caches, lazy initialization, batch modes etc. to help avoid the performance problems
Entity Framework C# kursus Rohde & Schwarz
Entity Framework What is Entity Framework? Entity Framework (EF) is an object-relational mapper that enables .NET developers to work with relational data using domain-specific objects. It eliminates the need for most of the data-access code that developers usually need to write. http://msdn.microsoft.com/en-us/data/ef.aspx C# kursus Rohde & Schwarz
Supported Databases • MS SQL Server • MySQL • SQLite • Oracle • Firebird • PostgreSQL • ... and more C# kursus Rohde & Schwarz
Getting Started EF supports four development workflows: http://msdn.microsoft.com/en-us/data/jj590134 Find out which fits your conditions: http://msdn.microsoft.com/en-us/data/ee712907 C# kursus Rohde & Schwarz
Installation • Pre installed with Visual Studio 2012 • Can be installed with NuGet in Visual Studio 2010 • You might need to install NuGet first... C# kursus Rohde & Schwarz
Using Entity Framework • Create a mapping of your database • Entity Data Model (Model First) • Database migrations not possible (yet) • Plain Old CLR Objects (POCO) (Code First) • Database migrations possible C# kursus Rohde & Schwarz
Using Entity Framework • Connect through a sub class of DbContext • Make queries using LINQ C# kursus Rohde & Schwarz
Demo C# kursus Rohde & Schwarz