Entity Framework Core migrations, database design, and query patterns for this project.
dotnet ef migrations add <Name>dotnet ef database updatedotnet ef migrations remove to undo the last unapplied migrationAddDbContext<AppDbContext>() in DIOnModelCreating using IEntityTypeConfiguration<T> per entityAsNoTracking().Include() / .ThenInclude() for eager loadingSelect() projections to fetch only needed columnsFirstOrDefaultAsync + null check over SingleAsync when item may not existAnyAsync() instead of CountAsync() > 0CancellationToken to async EF methodsawait dbContext.SaveChangesAsync(cancellationToken)dbContext.Events.Add(entity) then SaveChangesAsyncSaveChangesAsync (change tracking handles it)dbContext.Events.Remove(entity) then SaveChangesAsyncawait using var tx = await dbContext.Database.BeginTransactionAsync()int or Guid for primary keys (match project convention)CreatedAt (DateTimeOffset), UpdatedAt (DateTimeOffset).HasConversion<string>().OnDelete(DeleteBehavior.Cascade) or .Restrictappsettings.json for default, override per environmentdotnet user-secrets for local development database credentialsIConfiguration to resolve: builder.Configuration.GetConnectionString("DefaultConnection")