DEV Community

loading...

How to rename Asp .Net Core 2.2 Identity Tables to not have AspNet prefix in EF Core

Alexandru Bucur
A jack of all trades is a master of none, but oftentimes better than a master of one.
・1 min read

Not sure if the code below should be considered a hack, but the easiest way of removing the AspNet prefix is to iterate through the models.

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    foreach (var entityType in modelBuilder.Model.GetEntityTypes())
    {
        var table = entityType.Relational().TableName;
        if (table.StartsWith("AspNet")) {
            entityType.Relational().TableName = table.Substring(6);
        }
    };
}
Enter fullscreen mode Exit fullscreen mode

Found the initial code in a 2014 asp net issue and since copy paste didn't cut it, did a quick update of the method / property names.

This also allows you to replace it with whatever else you want, or add a generic table prefix.

Discussion (1)

Collapse
sgermosen profile image
Starling Germosen

On netcore >2.2 this doesnt work, so, you need to change it to this

foreach (var entityType in modelBuilder.Model.GetEntityTypes())
{
var tableName = entityType.GetTableName();
if (tableName.StartsWith("AspNet"))
{
entityType.SetTableName(tableName.Substring(6));
}
}