How to get Table Name of mapped entity in Entity Framework Core

Andrew Cui picture Andrew Cui · Aug 14, 2017 · Viewed 18.5k times · Source

In some reason, I need to use SQL in EFCore, and I will use table name of mapped entity. How can I get it?

Answer

Krzysztof Branicki picture Krzysztof Branicki · Aug 14, 2017

Using the Microsoft.EntityFrameworkCore.Relational package in 2.X:

var mapping = dbContext.Model.FindEntityType(typeof(YourEntity)).Relational();
var schema = mapping.Schema;
var tableName = mapping.TableName;

This assumes that dbContext is a instance of class that inherits from DbContext and that you have YourEntity configured there.

Note that in EF Core 3.X, [.Relational() provider extensions have been replaced] (https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-3.0/breaking-changes#provider) with getters and so you can now access the schema as follows:

var entityType = dbContext.Model.FindEntityType(typeof(YourEntity));
var schema = entityType.GetSchema();
var tableName = entityType.GetTableName();