An entity in Entity Framework is a class in the domain of your application which is included as a
DbSet<TEntity>
type property in the derived context class. EF API maps each entity to a table and each property of an entity to a column in the database.
For example, the following
Student
, StudentAddress
and Grade
are domain classes in the school application.public class Student { public int StudentID { get; set; } public string StudentName { get; set; } public DateTime? DateOfBirth { get; set; } public byte[] Photo { get; set; } public decimal Height { get; set; } public float Weight { get; set; } public StudentAddress StudentAddress { get; set; } public Grade Grade { get; set; } } public partial class StudentAddress { public int StudentID { get; set; } public string Address1 { get; set; } public string Address2 { get; set; } public string City { get; set; } public string State { get; set; } public Student Student { get; set; } } public class Grade { public int GradeId { get; set; } public string GradeName { get; set; } public string Section { get; set; } public ICollection<Student> Students { get; set; } }
The above classes become entities when they are included as
DbSet<TEntity>
properties in a context class (the class which derives from DbContext
), as shown below.public class SchoolContext : DbContext { public SchoolContext() { } public DbSet<Student> Students { get; set; } public DbSet<StudentAddress> StudentAddresses { get; set; } public DbSet<Grade> Grades { get; set; } }
In the above context class,
Students
, StudentAddresses
, and Grades
properties of type DbSet<TEntity>
are called entity sets. The Student
, StudentAddress
, and Grade
are entities (also known as entity types).
An Entity can include two types of properties: Scalar Properties and Navigation Properties.
Scalar Property
The primitive type properties are called scalar properties. A scalar property stores the actual data. a scalar property maps to a single column in the database table.
Navigation Property
The navigation property represents a relationship to another entity.
There are two types of navigation properties: Reference Navigation and Collection Navigation
Reference Navigation Property
If an entity includes a property of entity type, it is called a Reference Navigation Property. It represents multiplicity of one (1).
Collection Navigation Property
If an entity includes a property of collection type, it is called a collection navigation property. It represents multiplicity of many (*).
The following figure illustrates the properties of entities:
No comments:
Post a Comment