Система.Коллекции.Общий.IEnumerable

#linq #linq-to-sql #frameworks #entity-framework-4 #linq-to-entities

#linq #linq-to-sql #фреймворки #entity-framework-4 #linq-to-entities

Вопрос:

при попытке запросить мою базу данных с помощью entityframework я получаю следующую ошибку: свойство навигации типа ‘System.Коллекции.Общий.IEnumerable 1[[TASK.Warehouses.Domain.NoteProducts.NoteProduct, TASK.Warehouses.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' is not a single implementation of 'System.Collections.Generic.ICollection 1[T]’. в чем может быть проблема и как я могу ее исправить

Ответ №1:

Вы написали классы с кодом, которые имеют IEnumerable<T> свойства навигации.

Entity Framework требует, чтобы ваши свойства навигации были типа ICollection<T> .

Комментарии:

1. ♦: В чем разница? Почему он должен работать с ICollection, а не с IEnumerable? У меня был проект, в котором я использовал только IEnumerable, и он работал отлично. Можете ли вы объяснить?

Ответ №2:

Похоже, у вас много классов с именем «ЗАДАЧА.Склады.Домен.Примечанияпродукты.NoteProduct, , ЗАДАЧА.Склады.Домен]. Если это так, вы путаете CLR с нарушениями OO.

Комментарии:

1. Нет; это общие имена типов CLR.