我们在项目中使用Entity Framework,我有一个我在模型中构建的实体。然后我有一个使用存储过程的函数导入。函数import创建的方法应该返回我创建的自定义实体的集合。
问题是我在构建时遇到错误“实体类型'someentity'未映射。
这是什么意思?是不是因为实体没有底层数据存储?它不需要一个,函数import返回这个实体的实例,我不需要更新,编辑或插入这种类型的实体。
函数import很好用,并根据需要返回我的实体的集合,但是这个错误很烦人。虽然错误列表将其列为编译错误,但它实际上并不会停止编译解决方案。
感谢任何帮助。
如果我在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>
答案 0 :(得分:10)
每个实体都必须映射到QueryView或数据库表/定义查询。您无法创建根本未映射的实体。如果要定义未在模型中映射的函数导入结果,则必须将VendorBrief
定义为复杂类型。
答案 1 :(得分:8)
答案 2 :(得分:6)
尝试打开您的实体文件图表.edmx。然后使用DEL删除所有表。然后在图表中右键单击并选择“从数据库更新模型”。
Visual Studio在这个方面有点烦恼。
答案 3 :(得分:3)
您是否尝试使用复杂类型而不是实体来表示它并映射到它?
答案 4 :(得分:-1)
我也遇到了这个问题,但是当我在 XML 编辑器中打开 edmx 时错误消失了。我尝试了删除表格然后更新 edmx 的所有变体。
我遇到的另一件奇怪的事情,错误是指两个表之间的关系,但是当我双击错误消息时,它突出显示了另一个表,而不是它所指的两个表。