Отображение EF и информация о метаданных не могли быть найдены для Ошибки EntityType

Я встретился с исключением, когда я использую Платформу Объекта 4,0 RC. Модель My Entity Framework инкапсулируется в приватной сборке, кто имя, Приобретение. EFDataProvider и мой ПОСТЕПЕННО классы в другом Приобретении блока. Удалите сердцевину отношения между Ядром (Бизнес-логика), и EFDataProvider (Доступ к данным) с фабрикой под названием DataProvider

таким образом, когда я пытаюсь создать objectset

objectSet = ObjectContext.CreateObjectSet<TEntity>();

Я получаю ошибку:

Отображение и информация о метаданных не могло быть найдено для EntityType 'Приобретение. Ядро. Объекты. OrganizationChart'.

38
задан CodeConstruct 21 July 2016 в 06:27
поделиться

3 ответа

Для всех, кто имеет дело с ошибкой, я думаю, стоит упомянуть некоторые обнаруженные мной сценарии, которые вызывают эту (крайне бесполезную) ошибку:

  • Свойства с ошибками (с учетом регистра!)
  • Свойства отсутствуют в POCO class
  • Несоответствие типов между POCO и типом объекта (например, int вместо long)
  • Перечисления в POCO (EF сейчас не поддерживает перечисления, насколько я понимаю)

Могут быть другие причины также.

HTH

62
ответ дан 27 November 2019 в 03:22
поделиться

Вероятно, это связано с тем, что EF не может найти встроенную информацию сопоставления. Внутри вашей строки подключения вы, вероятно, будете иметь что-то вроде его:

metadata=res://*/Models.MyModels.csdl|...etc

Это * - это подстановочный знак, указывающий контексту объекта попытаться найти встроенную информацию сопоставления, я думаю, при сканировании всех загруженных сборок. Если сборка не загружена, EF ее не найдет.

Что вам нужно сделать, так это предоставить строку подключения с дополнительной информацией о том, куда встроена ваша информация о сопоставлении. Измените * на конкретное имя сборки вашего кода сопоставления:

metadata=res://Procurement.EFDataProvider/Models.MyModels.csdl

Если это не удается, найдите сборку и напрямую загрузите ее в свой ObjectContext, используя:

ObjectContext.Metadataworkspace.LoadFromAssembly();
12
ответ дан 27 November 2019 в 03:22
поделиться

Просто сверьте написание свойств с моделью

1
ответ дан 27 November 2019 в 03:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: