为了改进一个较旧的项目,我被迫使用VS 2008和Framework 3.5 - 我有问题,edmx显示奇怪的行为,而不是根据需要更新实体 .
edmx抛出了上面的错误,但是当我转到相应的表并右键单击它 - “从数据库更新模型”没有变化时,错误仍然存在 .
如果我通过选择它并按del删除图表中的表格,那么在模型浏览器中它会从.Database中消失但是当点击“从数据库更新模型”时我无法在“添加”列表中看到我,所有我可以做的是“刷新”表格,因为我仍然在刷新列表中看到它(这不应该发生,因为我删除了它!)
9 回答
检查你的模型的xml文件,它可能仍在某处 . 尝试从该XML文件中手动删除它,然后再次尝试更新 . 请务必进行备份 .
当我将列名从
CampaignKey
更改为CampaignCode
时,我遇到了此问题 . 进行数据库更改后,我转到.edmx
设计器,右键单击并选择 Update Model from Database . 然后,当我编译时,我得到了错误:仔细看看我在设计器中的表格,向我展示了Visual Studio在数据库中创建了新字段
CampaignCode
. 但它也留下了旧字段CampaignKey
,导致错误,因为它不再存在于DB中 .要解决此问题,我右键单击设计器中表格中的
CampaignKey
字段并选择 Delete .之后我保存了
.edmx
,编译后错误消失了 .在表或视图上的列名更改大小写之前,我遇到了同样的错误 . 例如,如果视图有一个名为“OrderID”的列,然后列名称更改为“OrderId”,那么它将给出错误“Property”OrderID“未映射” . 这可以通过将案例更改回模型中的存在方式来解决 .
有时,升级项目会引发错误 .
只需确保您已备份所有数据,只是在案例中 .
当我们将实体模型添加到我们的项目中时,它会将相应的 connection string 添加到 web.config . 现在,当您从项目中删除模型时,即使这样,连接字符串仍然驻留在web.config中 .
因此,请执行以下步骤:
删除模型
从web.config中删除相应的连接字符串
现在,执行从头开始再次添加模型的步骤 .
希望它应该有效 .
我在记事本中打开了edmx文件并删除了错误的字段 . 然后我在设计师中再次更新了模型
我知道这个问题是关于VS 2008和'恢复'模型,但对于任何发现这个的人,就像我在VS 2015中遇到相同的错误11009时那样,我首先尝试了“从数据库更新模型”无济于事,然后我最后通过右键单击.edmx设计中的模型表并选择表映射来修复它 . 我没有删除模型 . 我的模型与db表相关联 .
当我更改数据库中的列名并从模型更新数据库时,我遇到了同样的错误 . 我无法在解决方案的任何位置找到原始名称 . 我简单地解决了它
从模型中删除表格(右键单击表格,点击删除),
从数据库更新模型(右键单击edmx背景,选择"Update Model From Database",添加更改的表) .
在Database First模型上,我遇到了与Visual Studio 2017和Entity Framework 6相同的问题,在刷新它以获取新列时 .
我尝试了以上所有方法,但唯一有效的方法是删除EDMX并生成一个新的EDMX .
在将表添加到.edmx之后,我有这个错误(错误3007:从行开始映射片段的问题...)
首先,我删除最后添加的表,然后我重新更新该表的模型,但检查'include foreing key复选框: