db.Categories.Where(x => x.DeleteAt == null)
を
db.Products.Where(x => x.DeleteAt == null && x.Category.DeleteAt == null);
で共通化して再利用するのは初心者には無理でしょうかね・・・