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 the Db column with the same name as DbSet<TEntity>
property name.
Table Attribute: [Table(string name, Properties:[Schema = string])
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 the StudentMaster
table instead of the Students
table in the database, as shown below.
Use the 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 the StudentMaster
table in the Admin
schema as shown below.