Я пытаюсь получить структуру данных Dictionary для одной из моих моделей ASP.NET MVC. По сути, я хотел бы получить хэш-карту настроек в виде пар ключ-значение. Мой код похож на:
[ActiveRecord]
public class Blog extends ActiveRecordBase<Blog> {
[Property]
public IDictionary<string, string> Settings { get; set; }
}
Однако я не знаю, как это реализовать. Я предполагаю, что мне понадобится таблица БД, например BlogSettings, со столбцом ключа и значения; но мне не ясно, как это сделать без создания другой модели.
NHibernate / ActiveRecord жалуются, что:
A HasMany with type Map requires that you specify an 'Index', use the Index property Blog.Settings
Я попытался добавить фиктивный индекс (так как я не понимаю, как добавить индикаторы с ActiveRecord), например так:
[Property(Index="")]
public IDictionary<string, string> Settings { get; set; }
Я не ожидал никаких изменений, но вместо этого я получил другое сообщение об ошибке:
ActiveRecord tried to infer details about the relation Blog.Settings but it could not find information about the specified target type System.String. If you have mapped a Collection or Dictionary of value types, please make sure you have specified the Table property
Поэтому мой вопрос: Что мне нужно (мудро для кода / БД), чтобы настроить мою модель ActiveRecord с словарём пар строковый ключ / значение в качестве одного поля, без создания нового класса для инкапсуляции ключа пары-значения?