Data Annotations - Table Attribute in EF 6 & EF Core

The Table attribute can be applied to a class to configure the corresponding table name in the database. It overrides the default convention in EF 6 and EF Core. As per the default conventions, EF 6 creates a table name matching with <DbSet<TEntity> property name> + s (or es) in a context class and EF Core creates Db column with the same name as DbSet<TEntity> property name.

Table Attribute: [Table(string name, Properties:[Schema = string])

  • name: Name of the Db table.
  • Schema: Name of the Db Schema in which a specified table should be created. (Optional)
using System.ComponentModel.DataAnnotations.Schema;

[Table("StudentMaster")]
public class Student
{
    public int StudentID { get; set; }
    public string StudentName { get; set; }
}

In the above example, the Table attribute is applied to the Student entity class. So, EF will override the default conventions and create StudentMaster table instead of Students table in the database as shown below.

dataannotations table attribute

Use Schema property to specify the schema name for a Db table as shown below.

using System.ComponentModel.DataAnnotations.Schema;

[Table("StudentMaster", Schema="Admin")]
public class Student
{
    public int StudentID { get; set; }
    public string StudentName { get; set; }
}

EF will create StudentMaster table in the Admin schema as shown below.

dataannotations table attribute

Test Your Entity Framework Knowledge: