首页 文章

实体框架错误 - 错误11009:未映射属性' '

提问于
浏览
42

为了改进一个较旧的项目,我被迫使用VS 2008和Framework 3.5 - 我有问题,edmx显示奇怪的行为,而不是根据需要更新实体 .

edmx抛出了上面的错误,但是当我转到相应的表并右键单击它 - “从数据库更新模型”没有变化时,错误仍然存在 .

如果我通过选择它并按del删除图表中的表格,那么在模型浏览器中它会从.Database中消失但是当点击“从数据库更新模型”时我无法在“添加”列表中看到我,所有我可以做的是“刷新”表格,因为我仍然在刷新列表中看到它(这不应该发生,因为我删除了它!)

9 回答

  • 46

    检查你的模型的xml文件,它可能仍在某处 . 尝试从该XML文件中手动删除它,然后再次尝试更新 . 请务必进行备份 .

  • 1

    当我将列名从 CampaignKey 更改为 CampaignCode 时,我遇到了此问题 . 进行数据库更改后,我转到 .edmx 设计器,右键单击并选择 Update Model from Database . 然后,当我编译时,我得到了错误:

    错误11009:未映射属性CampaignKey .

    仔细看看我在设计器中的表格,向我展示了Visual Studio在数据库中创建了新字段 CampaignCode . 但它也留下了旧字段 CampaignKey ,导致错误,因为它不再存在于DB中 .

    要解决此问题,我右键单击设计器中表格中的 CampaignKey 字段并选择 Delete .

    之后我保存了 .edmx ,编译后错误消失了 .

  • 2

    在表或视图上的列名更改大小写之前,我遇到了同样的错误 . 例如,如果视图有一个名为“OrderID”的列,然后列名称更改为“OrderId”,那么它将给出错误“Property”OrderID“未映射” . 这可以通过将案例更改回模型中的存在方式来解决 .

  • 0

    有时,升级项目会引发错误 .

    只需确保您已备份所有数据,只是在案例中 .

    当我们将实体模型添加到我们的项目中时,它会将相应的 connection string 添加到 web.config . 现在,当您从项目中删除模型时,即使这样,连接字符串仍然驻留在web.config中 .

    因此,请执行以下步骤:

    • 删除模型

    • 从web.config中删除相应的连接字符串

    • 现在,执行从头开始再次添加模型的步骤 .

    希望它应该有效 .

  • 3

    我在记事本中打开了edmx文件并删除了错误的字段 . 然后我在设计师中再次更新了模型

  • 2

    我知道这个问题是关于VS 2008和'恢复'模型,但对于任何发现这个的人,就像我在VS 2015中遇到相同的错误11009时那样,我首先尝试了“从数据库更新模型”无济于事,然后我最后通过右键单击.edmx设计中的模型表并选择表映射来修复它 . 我没有删除模型 . 我的模型与db表相关联 .

  • 2

    当我更改数据库中的列名并从模型更新数据库时,我遇到了同样的错误 . 我无法在解决方案的任何位置找到原始名称 . 我简单地解决了它

    • 从模型中删除表格(右键单击表格,点击删除),

    • 从数据库更新模型(右键单击edmx背景,选择"Update Model From Database",添加更改的表) .

  • 39

    在Database First模型上,我遇到了与Visual Studio 2017和Entity Framework 6相同的问题,在刷新它以获取新列时 .

    我尝试了以上所有方法,但唯一有效的方法是删除EDMX并生成一个新的EDMX .

  • 0

    在将表添加到.edmx之后,我有这个错误(错误3007:从行开始映射片段的问题...)

    首先,我删除最后添加的表,然后我重新更新该表的模型,但检查'include foreing key复选框:

    enter image description here

相关问题