entity-framework
  1. entity-framework-code-first-approach

Code-First Approach - (EF Entity Data Model (EDM))

Entity Framework (EF) is a popular object-relational mapper (ORM) that allows developers to work with relational databases in an object-oriented way. One of the approaches to working with EF is the code-first approach, which involves creating database schema based on domain classes and their relationships. This approach is facilitated by the use of an Entity Data Model (EDM). In this tutorial, we'll discuss the code-first approach and EDM in EF.

Syntax

There is no specific syntax for the code-first approach or EDM in EF. However, the following is an example of defining a class in C# that will be used to generate a database table:

public class Customer
{
    public int CustomerID { get; set; }
    public string Name { get; set; }
    public DateTime DateOfBirth { get; set; }
    public virtual ICollection<Order> Orders { get; set; }
}

Example

To illustrate the code-first approach and EDM in EF, let's consider the following scenario:

Suppose we want to create a database for an e-commerce system that will store customer information and their orders. We can define two classes: Customer and Order, as follows:

public class Customer
{
    public int CustomerID { get; set; }
    public string Name { get; set; }
    public DateTime DateOfBirth { get; set; }
    public virtual ICollection<Order> Orders { get; set; }
}

public class Order
{
    public int OrderID { get; set; }
    public DateTime OrderDate { get; set; }
    public int CustomerID { get; set; }
    public virtual Customer Customer { get; set; }
}

In this example, the Customer class has a one-to-many relationship with the Order class, which is reflected in the use of the virtual ICollection<Order> Orders property in the Customer class and the virtual Customer Customer property in the Order class.

Explanation

The code-first approach in EF allows developers to create a database schema based on domain classes and their relationships, without having to create the database schema manually. This is facilitated by the use of an Entity Data Model (EDM), which is a metadata representation of the classes in the code-first approach.

When we define our domain classes, we can add annotations or use the fluent API to specify additional details about the tables and their relationships, such as primary keys, foreign keys, and indices. When we run our application, EF will generate the database schema based on the EDM.

Use

The code-first approach is useful when we want to create a database schema based on our domain classes and their relationships, without having to create the schema manually. This approach is particularly useful for complex databases or databases that need to evolve over time.

Important Points

Here are some important points to keep in mind when working with the code-first approach and EDM in EF:

  • The code-first approach allows us to create a database schema based on our domain classes and their relationships.
  • The EDM is a metadata representation of the classes in the code-first approach.
  • We can use annotations or the fluent API to specify additional details about the database schema, such as primary keys, foreign keys, and indices.

Summary

In this tutorial, we discussed the code-first approach and EDM in EF. We covered syntax, example, explanation, use, and important points of the code-first approach and EDM in EF. By using the code-first approach and EDM, we can create a database schema based on our domain classes and their relationships, without having to create the schema manually.

Published on: