Book Image

Mastering Entity Framework

By : Rahul Rajat Singh
Book Image

Mastering Entity Framework

By: Rahul Rajat Singh

Overview of this book

<p>Data access is an integral part of any software application. Entity Framework provides a model-based system that makes data access effortless for developers by freeing you from writing similar data access code for all of your domain models.</p> <p>Mastering Entity Framework provides you with a range of options when developing a data-oriented application. You’ll get started by managing the database relationships as Entity relationships and perform domain modeling using Entity Framework. You will then explore how you can reuse data access layer code such as stored procedures and table-valued functions, and perform various typical activities such as validations and error handling. You’ll learn how to retrieve data by querying the Entity Data Model and understand how to use LINQ to Entities and Entity SQL to query the Entity Data Model.</p>
Table of Contents (19 chapters)
Mastering Entity Framework
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Performing data access


Let's now start implementing the actual data access layer for our application. The first thing we need to do is to create a class library and copy all the model classes and context classes into the class library project. The following screenshot shows how this can be done:

Solution Explorer showing the class library that contains the POCO classes

To implement an extensible data access layer, we will use the Repository and Unit of Work patterns.

Understanding the Repository pattern

The Repository pattern is particularly useful when we have separate data models and domain models. Repository can act as a mediator between the data model and the domain model. Internally, it can talk to the database in terms of data models and will return the domain model to the application layers above it.

Since we are using data models as domain models in our application, we will be returning the same model. In case we want to use separate data models and domain models, we just need to map...