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

Modeling a many-to-many relationship using Entity Framework


Now, let's look at the models that have many-to-many relationships. The Employees table and the Reports table have a many-to-many relationship. If we look at the Employer and Report relationship, we can see that the Entity Framework Entity Data Model generator was able to figure out this many-to-many relationship between these tables and was able to create the same relationship in the conceptual Entity Data Model as well.

The important thing to notice here is that the Entity Framework was also able to understand that the EmployeeReports table was created solely to manage a many-to-many relationship, and is actually not needed in the conceptual model.

Tip

Entity Framework is able to figure out this many-to-many relationship and omit the joining table when the joining table has only PK columns for both tables.

Not having the joining table as a separate entity is actually beneficial as the entities will then have direct navigation properties...