0% found this document useful (0 votes)
34 views

6 Configure Domain Classes in Code

The document discusses two ways to configure domain classes in Entity Framework Code First: DataAnnotations and Fluent API. DataAnnotations uses attributes to configure domain classes and properties, but only supports a subset of configurations. Fluent API configurations are applied by overriding the OnModelCreating method in the DbContext class to configure the modelBuilder object. Both approaches are explored in more detail in subsequent chapters.

Uploaded by

metro g
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views

6 Configure Domain Classes in Code

The document discusses two ways to configure domain classes in Entity Framework Code First: DataAnnotations and Fluent API. DataAnnotations uses attributes to configure domain classes and properties, but only supports a subset of configurations. Fluent API configurations are applied by overriding the OnModelCreating method in the DbContext class to configure the modelBuilder object. Both approaches are explored in more detail in subsequent chapters.

Uploaded by

metro g
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Configure Domain Classes in

Code-First:
We learned default Code-First Conventions in the previous section. Code-First
builds conceptual model from your domain classes using default conventions.
Code-First leverages a programming pattern referred to as convention over
configuration. It means you can override these conventions by configuring your
domain classes to provide EF with the information it needs. There are two ways
to configure your domain classes.

1. DataAnnotations
2. Fluent API

DataAnnotation:
DataAnnotation is a simple attribute based configuration, which you can apply
to your domain classes and its properties. You can find most of the attributes in
the System.ComponentModel.DataAnnotations namespace. However,
DataAnnotation provides only a subset of Fluent API configurations. So, if you
don't find some attributes in DataAnnotation, then you have to use Fluent API
to configure it.

Following is an example of DataAnnotation used in Student Class:

[Table("StudentInfo")]
public class Student
{
public Student() { }

[Key]
public int SID { get; set; }

[Column("Name", TypeName="ntext")]
[MaxLength(20)]
public string StudentName { get; set; }
[NotMapped]
public int? Age { get; set; }

public int StdId { get; set; }

[ForeignKey("StdId")]
public virtual Standard Standard { get; set; }
}

Fluent API:
Fluent API configuration is applied as EF builds the model from your domain
classes You can inject the configurations by overriding the DbContext
class' OnModelCreating method as following:

public class SchoolDBContext: DbContext


{
public SchoolDBContext(): base("SchoolDBConnectionString")
{
}

public DbSet<Student> Students { get; set; }


public DbSet<Standard> Standards { get; set; }
public DbSet<StudentAddress> StudentAddress { get; set; }

protected override void OnModelCreating(DbModelBuilder


modelBuilder)
{
//Configure domain classes using Fluent API here
base.OnModelCreating(modelBuilder);
}
}

You can use modelBuilder, which is an object of DbModelBuilder class, to


configure domain classes.

Let's see DataAnnotation and Fluent API in detail in the next chapter.

You might also like