Ошибка структуры объекта «Тип объекта не сопоставлен». - PullRequest
17 голосов
/ 21 апреля 2011

Мы используем Entity Framework в нашем проекте, и у меня есть объект, который я построил в своей модели.Затем у меня есть функция импорта, которая использует хранимую процедуру.Метод, созданный функцией import, должен возвращать коллекцию созданной мной пользовательской сущности.

Проблема заключается в том, что при сборке я получаю сообщение об ошибке "Тип сущности" someentity "не отображается.

Что это значит? Это расстроено, потому что у сущности нет основного хранилища данных? Она не нужна, функция импорта возвращает экземпляры этой сущности, а у меня нетнеобходимо обновить, отредактировать или вставить сущности этого типа.

Функция импорта отлично работает и возвращает коллекцию моей сущности по желанию, но эта ошибка раздражает. Хотя в списке ошибок она указана как ошибка компиляции, это на самом деле не останавливает компиляцию решения.

Любая помощь приветствуется.

ОБНОВЛЕНИЕ

Если я открою 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>

Ответы [ 4 ]

10 голосов
/ 21 апреля 2011

Каждый объект должен отображаться либо в QueryView, либо в таблицу базы данных / определяющий запрос. Вы не можете создать объект, который вообще не отображается. Если вы хотите определить результат импорта функции, который не отображается в вашей модели, вы должны определить ваш VendorBrief как сложный тип.

8 голосов
/ 18 сентября 2013
  1. Открыть модель данных (файл edmx)
  2. Щелкните правой кнопкой мыши модель данных и выберите Обозреватель моделей
  3. В окне браузера модели перейдите в «Импорт функций» и удалите соответствующие элементы.
6 голосов
/ 21 апреля 2011

Попробуйте открыть диаграмму файла Entity, .edmx.А затем удалите все таблицы, используя DEL.А затем щелкните правой кнопкой мыши внутри диаграммы и выберите «Обновить модель из базы данных».

Visual Studio немного ошибается в этом материале.

3 голосов
/ 21 апреля 2011

Вы пытались представить его с помощью сложного типа вместо сущности и сопоставить с ним вместо этого?

http://msdn.microsoft.com/en-us/library/bb738472.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...