Ошибка структуры Entity "Тип объекта не отображается".
Мы используем Entity Framework в нашем проекте, и у меня есть объект, который я создал в своей модели. Затем я импортирую функцию, которая использует хранимую процедуру. Предполагается, что метод, созданный импортом функции, возвращает коллекцию созданного вами пользовательского объекта.
Проблема заключается в том, что я получаю сообщение об ошибке при построении, которое говорит: "Тип объекта" someentity "не отображается.
Что это значит? Это расстроено, потому что у объекта нет базового хранилища данных? Он не нужен, функция import возвращает экземпляры этого объекта, и мне не нужно обновлять, редактировать или вставлять объекты этого типа.
Импорт функций отлично работает и возвращает коллекцию моего объекта по желанию, но эта ошибка раздражает. Хотя список ошибок перечисляет его как ошибку компиляции, он фактически не останавливает решение от компиляции.
Любая помощь приветствуется.
UPDATE
Если я открою EDMX в редакторе XML и дважды щелкните по ошибке в списке ошибок, он выделит этот фрагмент XML в красном:
<EntityContainerMapping StorageEntityContainer="KlasEntitiesStoreContainer" CdmEntityContainer="KlasEntities">
<EntitySetMapping Name="VendorBriefs"><EntityTypeMapping TypeName="KlasEntityDataModel.VendorBrief"><MappingFragment StoreEntitySet="ev_VendorBriefs">
<ScalarProperty Name="VendorBriefID" ColumnName="VendorBriefID" />
<ScalarProperty Name="Title" ColumnName="Title" />
<ScalarProperty Name="Link" ColumnName="Link" />
<ScalarProperty Name="LinkText" ColumnName="LinkText" />
<ScalarProperty Name="BriefPath" ColumnName="BriefPath" />
<ScalarProperty Name="Description" ColumnName="Description" />
<ScalarProperty Name="IsActive" ColumnName="IsActive" />
<ScalarProperty Name="DisplayOrder" ColumnName="DisplayOrder" />
</MappingFragment></EntityTypeMapping></EntitySetMapping>
<FunctionImportMapping FunctionImportName="SearchForVendorProductByKlasID" FunctionName="KlasEntities.Store.ev_ds_Products_SearchByKLASID" />
</EntityContainerMapping>
Ответы
Ответ 1
Каждый объект должен быть сопоставлен либо с QueryView, либо с таблицей базы данных/с определением запроса. Вы не можете создать объект, который не отображается вообще. Если вы хотите определить результат импорта функции, который не отображается в вашей модели, вы должны определить свой VendorBrief
как сложный тип.
Ответ 2
- Откройте datamodel (файл edmx)
- Щелкните правой кнопкой мыши в datamodel и выберите "Браузер модели"
- В окне браузера модели перейдите в раздел "Импорт объектов" и удалите соответствующие элементы.
Ответ 3
Попробуйте открыть диаграмму файлов Entity,.edmx. Затем удалите все таблицы, используя DEL. Затем щелкните правой кнопкой мыши внутри диаграммы и выберите "Обновить модель из базы данных".
Visual Studio немного прослушивается в этом материале.
Ответ 4
Вы пытались представить его с использованием сложного типа вместо Entity и сопоставления с ним?
http://msdn.microsoft.com/en-us/library/bb738472.aspx