EF 5 Code First Map Mapping
Есть ли способ сопоставить словарь с помощью Entity Framework 5?
Из того, что я нашел во время поиска, он не был поддержан до EF 4.1, не уверен, что EF 5 предоставляет какие-либо инновационные методы для его простого отображения.
Я использую словарь для хранения "переменного количества свойств" для каждого объекта класса.
Если он не поддерживается, какую структуру данных лучше всего использовать в этом сценарии (поддерживается EF)?
1 ответ
Ни один словарь по-прежнему не поддерживается. Вы должны использовать традиционное отношение один ко многим. Где каждая ваша текущая пара ключ / значение в словаре будет храниться как запись в таблице и связана с внешним ключом для главной сущности (той, которая содержала словарь). Сущность должна выглядеть так:
public class Item {
public int Id { get; set; } // unique autogenerated database key
public string Key { get; set; }
public string Value { get; set; }
public int PrincipalId { get; set; } // FK to principal entity
}
Типы свойств и имя внешнего ключа будут отличаться для вашей текущей ситуации. Основной объект будет просто иметь:
public virtual ICollection<Item> Items { get; set; }