C#C
C#14mo ago
Jiry_XD

Reset identity colums EF Core error.

Hi all,

This is my seeding method:
public async Task Seed()
{
    dbContext.Database.Migrate();

    string dbName = dbContext.Database.GetDbConnection().Database;
    if (!dbName.EndsWith("_Tests"))
    {
        var tableNames = dbContext.Model.GetEntityTypes()
                .Select(t => t.GetTableName())
                .Distinct()
                .ToList();



        tableNames.ForEach(tableName =>
        {

            dbContext.Database.ExecuteSqlRaw($"ALTER TABLE {tableName} NOCHECK CONSTRAINT ALL;");
        });

        tableNames.ForEach(tableName =>
        {
            dbContext.Database.ExecuteSqlRaw($"DELETE FROM {tableName};");
            dbContext.Database.ExecuteSqlRaw(
                            $"IF EXISTS (SELECT 1 FROM sys.columns WHERE object_id = OBJECT_ID('{tableName}') AND is_identity = 1) " +
                            $"BEGIN DBCC CHECKIDENT ('{tableName}', RESEED, 0); END");
   

        });



        tableNames.ForEach(tableName =>
        {
            dbContext.Database.ExecuteSqlRaw($"ALTER TABLE {tableName} CHECK CONSTRAINT ALL;");
        });

        //Seed/insert data
        await SeedTable1();
        await SeedTable2();
        await SeedTable3();

    }
}
Was this page helpful?