Caution
This documentation is for EF Core. For EF6.x and earlier release see http://msdn.com/data/ef.
Note
The configuration in this section is applicable to relational databases in general. The extension methods shown here will become available when you install a relational database provider (due to the shared Microsoft.EntityFrameworkCore.Relational package).
Table Mapping¶
Table mapping identifies which table data should be queried from and saved to in the database.
In this article:
Conventions¶
By convention, each entity will be setup to map to a table with the same name as the DbSet<TEntity>
property that exposes the entity on the derived context. If no DbSet<TEntity>
is included for the given entity, the class name is used.
Data Annotations¶
You can use Data Annotations to configure the table that a type maps to.
1 2 3 4 5 6 | [Table("blogs")]
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
}
|
You can also specify a schema that the table belongs to.
1 2 3 4 5 6 | [Table("blogs", Schema = "blogging")]
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
}
|
Fluent API¶
You can use the Fluent API to configure the table that a type maps to.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class MyContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>()
.ToTable("blogs");
}
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
}
|
You can also specify a schema that the table belongs to.
1 2 | modelBuilder.Entity<Blog>()
.ToTable("blogs", schema: "blogging");
|