我们正在将一个项目从Entity Framework4更新到Entity Framework6。我们使用数据库优先映射。当我们最初构建项目时,我们在实体模型中重命名了许多导航属性,以改进属性名称的语义。
当我们更新到Entity Framework6时,.edmx模式已经更改,因此我们重新创建了所有名称更改。不幸的是,在第一次访问数据库时,Entity Framework抛出了这个异常:
System.Data.Entity.Core.MetadataException was unhandled by user code
HResult=-2146232007
Message=Schema specified is not valid. Errors:
The relationship 'web_appModel.fk_service_order_workorder_id' was not loaded because the type 'web_appModel.workorder' is not available.
The following information may be useful in resolving the previous error:
The required property 'asset' does not exist on the type 'Persistence.Interface.workorder'.我们的模型有一个service_order表,其中有一个指向工作订单表的外键,还有一个指向资产表的外键。workorder对象中的导航属性最初名为asset,但我们将其重命名。
这种情况下的问题是实体框架无法加载关系a到b,因为关系b到c中的导航属性具有更改的名称。
数据位于PostgreSql数据库中。我们使用DevArt DotConnect作为实体框架提供者。
发布于 2016-10-23 08:40:37
您需要从数据库更新EntityFramewok模型。双击模型,然后您将找到表的模式,在那里右击任何空白部分并选择Update model from Database。然后转到“刷新”选项卡,并选择“表”。
希望它能为你工作
https://stackoverflow.com/questions/40198221
复制相似问题