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; }
Другие вопросы по тегам