Я работаю над проектом, использующим 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 для создания столбца в нашей процедуре настройки теста, что было бы ... неприятно.