Вы помещаете данные в имена полей в таблице, что усложняет задачу. Вместо того, чтобы хранить шаги в столбцах, как это:
CompanyId Step1 Step2 Step3 Step4 Step5 Step 6 Step7 ...
1 alpha beta gamma
2 one two three four five
Вы должны сохранить шаги в виде строк, чтобы получить номер шага в виде данных в поле:
CompanyId StepNumber Step
1 1 alpha
1 2 beta
1 3 gamma
2 1 one
2 2 two
2 3 three
2 4 four
2 5 five
Таким образом, вы не получите неиспользуемые поля, а модель данных не ограничивает количество шагов. Кроме того, вы можете легко получить шаги как коллекцию вместо того, чтобы получать каждый отдельно и добавлять в коллекцию.
Что-то вроде:
var steps =
from s in CompanySteps
where s.CompanyId = 2
orderby s.StepNumber
select new { s.StepNumber, s.Step };
Тогда у вас есть много разных вариантов отображения шагов, например, использование коллекции в качестве источника данных в репитере, или циклический просмотр элементов, просто создание для них HTML-кода и добавление элемента управления Literal.