Как получить CreateSchema с помощью Castle ActiveRecord для создания столбцов, на которые ссылаются атрибуты OrderBy? - PullRequest
1 голос
/ 19 октября 2011

Я работаю над проектом, использующим Castle ActiveRecord, и нам нужно добавить явное упорядочение к одной из коллекций в модели предметной области.

[ActiveRecord]
public class ShortList : ActiveRecordBase<ShortList>, IPlayList {
  [HasAndBelongsToMany(typeof(Candidate),
      Table = "ShortlistCandidate", ColumnRef = "CandidateId", 
      ColumnKey = "ShortlistId", 
      Lazy = false, 
      NotFoundBehaviour = NotFoundBehaviour.Ignore, 
      Fetch = FetchEnum.SubSelect, 
      // this is the new attribute that's just been added...
      OrderBy = "Sequence"
  )]
  public IList<Candidate> Candidates {
      get { return candidates; }
      set { candidates = value; }
  }

В тестах для проектамы используем ActiveRecordStarter.CreateSchema для настройки базы данных SQL Express для запуска интеграционных тестов.

Проблема в том, что CreateSchema не создает столбец Sequence в таблице «многие-многие», на которую ссылается отношение HasAndBelongsToMany,и поэтому последующие запросы завершаются с ошибкой SqlClientException: Invalid column name 'Sequence'

Есть ли способ настроить ActiveRecord для создания этого дополнительного столбца во время инициализации схемы?Если нет, я думаю, что мы собираемся добавить явный оператор SQL для создания столбца в нашей процедуре настройки теста, что было бы ... неприятно.

...