实体框架错误"实体类型未映射".

Che*_*hev 17 .net c# asp.net entity-framework entity-framework-4

我们在项目中使用Entity Framework,我有一个我在模型中构建的实体.然后我有一个使用存储过程的函数导入.函数import创建的方法应该返回我创建的自定义实体的集合.

问题是我在构建时遇到错误"未映射实体类型'someentity'.

这是什么意思?是不是因为实体没有底层数据存储?它不需要一个,函数import返回这个实体的实例,我不需要更新,编辑或插入这种类型的实体.

函数import很好用,并根据需要返回我的实体的集合,但是这个错误很烦人.虽然错误列表将其列为编译错误,但它实际上并不会停止编译解决方案.

任何帮助表示赞赏.

UPDATE

如果我在XML编辑器中打开EDMX并双击错误列表中的错误,它会以红色突出显示这块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>
Run Code Online (Sandbox Code Playgroud)

Lad*_*nka 10

必须将每个实体映射到QueryView或数据库表/定义查询.您无法创建根本未映射的实体.如果要定义未在模型中映射的函数导入结果,则必须将其定义VendorBrief为复杂类型.


F S*_*man 8

  1. 打开datamodel(edmx文件)
  2. 在数据模型中单击鼠标右键,然后选择"模型浏览器"
  3. 在模型浏览器窗口中,转到"功能导入"并删除相应的项目.


ala*_*a27 6

尝试打开您的实体文件图,.edmx.然后使用DEL删除所有表.然后在图表中右键单击并从数据库中选择"更新模型".

Visual Studio在这个问题上有点麻烦.

  • 或者,如果数据库中没有数据,则可以执行相反的操作:`从模型更新数据库`.那也应该解决问题. (2认同)
  • 六年后,即2017年中期,这个bug仍在"VS2015 Update 3"中继续存在.我知道它不受支持,但"LINQ to SQL"总是*工作*.每次..... (2认同)