Я встретился с исключением, когда я использую Платформу Объекта 4,0 RC. Модель My Entity Framework инкапсулируется в приватной сборке, кто имя, Приобретение. EFDataProvider и мой ПОСТЕПЕННО классы в другом Приобретении блока. Удалите сердцевину отношения между Ядром (Бизнес-логика), и EFDataProvider (Доступ к данным) с фабрикой под названием DataProvider
таким образом, когда я пытаюсь создать objectset
objectSet = ObjectContext.CreateObjectSet<TEntity>();
Я получаю ошибку:
Отображение и информация о метаданных не могло быть найдено для EntityType 'Приобретение. Ядро. Объекты. OrganizationChart'.
Для всех, кто имеет дело с ошибкой, я думаю, стоит упомянуть некоторые обнаруженные мной сценарии, которые вызывают эту (крайне бесполезную) ошибку:
Могут быть другие причины также.
HTH
Вероятно, это связано с тем, что EF не может найти встроенную информацию сопоставления. Внутри вашей строки подключения вы, вероятно, будете иметь что-то вроде его:
metadata=res://*/Models.MyModels.csdl|...etc
Это * - это подстановочный знак, указывающий контексту объекта попытаться найти встроенную информацию сопоставления, я думаю, при сканировании всех загруженных сборок. Если сборка не загружена, EF ее не найдет.
Что вам нужно сделать, так это предоставить строку подключения с дополнительной информацией о том, куда встроена ваша информация о сопоставлении. Измените * на конкретное имя сборки вашего кода сопоставления:
metadata=res://Procurement.EFDataProvider/Models.MyModels.csdl
Если это не удается, найдите сборку и напрямую загрузите ее в свой ObjectContext, используя:
ObjectContext.Metadataworkspace.LoadFromAssembly();