* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Entity Framework
Survey
Document related concepts
Transcript
Entity Framework Object Relational Mapping – ORM Entity Framework C# kursus Rohde & Schwarz 1 ORM? C# kursus Rohde & Schwarz 2 Objects vs. Relations C# kursus Rohde & Schwarz 3 Object-Relational Impedance Mismatch Object-Oriented Based on proven software engineering principles. Entry point is behaviour Object collections and associations derived from graph theory C# kursus Rohde & Schwarz Relational Based on proven mathematical principles. Entry point is data Data collections and associations derived from set theory 4 A Physical Data Model C# kursus Rohde & Schwarz 5 A Class Model C# kursus Rohde & Schwarz 6 Differences Physical Data Model C# kursus Rohde & Schwarz Class Model 7 Benefits Of O/R Mapping 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. C# kursus Rohde & Schwarz 8 Drawbacks Of O/R Mapping 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 C# kursus Rohde & Schwarz 9 ENTITY FRAMEWORK C# kursus Rohde & Schwarz 10 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 11 Supported Databases MS SQL Server MySQL SQLite Oracle Firebird PostgreSQL ... and more C# kursus Rohde & Schwarz 12 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 13 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 14 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 15 Using Entity Framework Connect through a sub class of DbContext Make queries using LINQ C# kursus Rohde & Schwarz 16 Demo C# kursus Rohde & Schwarz 17