Entity Framework Code First и классы, которые реализуют IList <T> - PullRequest
1 голос
/ 02 декабря 2011

У меня есть ComplexType, который должен реализовывать IList<T> ( справочная информация здесь ).

К сожалению, Entity Framework жалуется на индексированное свойство, требуемое для этого интерфейса

[NotMapped]
public T this[int index]

(обратите внимание, что он украшен аннотацией данных NotMapped).

Я получаю DbUpdateException во время выполнения с внутренним исключением

Индексированные свойства не поддерживаются.

Если я закомментирую, что класс реализует IList<T> и закомментирует индексированное свойство, экземпляры класса сохраняются, как и ожидалось.

Есть ли способ для сложного типареализовать IList<T>, который будет сохранен с помощью Entity Framework Code First?

1 Ответ

1 голос
/ 02 декабря 2011

Entity Framework не поддерживает открытые универсальные объекты, и я считаю, что то же самое верно для сложных типов.Единственный способ - определить конкретный тип, производный от закрытого универсального типа, как показано в связанном вопросе.

Также существует известная ошибка, заключающаяся в том, что сопоставленный класс не должен иметь индексатора.

...