错误3004,与EF映射错误

时间:2011-05-09 01:11:11

标签: entity-framework-4

好了,因为我的问题已经解决了,所以我一直在使用代码,直到现在:我现在遇到了一个我甚至无法在谷歌上找到它的任何东西。这是错误的文本:

  

错误3004:映射问题

     
    从第937行开始的

片段:否     为属性指定的映射     StoreItem中的StoreItem.ItemPrice。     具有密钥(PK)的实体不会     往返时:实体是类型     [psychoco_GodsCreationTaxidermyModel.StoreItem] F:\ Projects \ GodsCreationTaxidermySVN \ GodsCreationTaxidermy.Data \ GCTEntities.edmx 938 945 GodsCreationTaxidermy.Data

  

您需要任何代码示例让我知道

3 个答案:

答案 0 :(得分:8)

该错误表示导入模型的表包含未映射到您实体的其他列ItemPrice

答案 1 :(得分:1)

我使用数据库第一种方法遇到了同样的错误。原因是当我通过设计师添加关联时,EF决定根据我定义的任何关键关系向我的委托人添加合成字段。如果您先做数据库,请检查StoreItem上的ItemPrice是否为真实数据库字段,或者EF是否决定为您生成它。

答案 2 :(得分:0)

我们遇到的另一个原因是:我们有两个开发人员,A和B.

  1. Dev A将列​​(例如" newcol")添加到表格中(例如" mytable") 数据库项目然后更新他们的模型所有构建都很好,数据库 有mytable.newcol,模型反映了这一点。
  2. Dev B拉/同步 但忘记将更改发布到本地数据库。该 model有mytable.newcol但是他们的本地数据库没有。
  3. Dev B然后以某种方式更改模型并从数据库更新它, VS看到mytable.newcol不存在,所以它变得不相关。

  4. Dev B实现了他们的错误并发布了数据库更改。

  5. Dev B 然后再次从数据库更新模型。现在VS看到了 数据库中的mytable.newcol列并创建一个mytable.newcol1 (注意后缀)链接到数据库列,因为它 已经在模型中有一个未链接的newcol。

    对于Dev B,VS然后抱怨mytable.newcol没有映射和 失败。

  6. 解决方案 - 修复,从模型中删除mytable.newcol,将mytable.newcol1重命名为newcol ...或者恢复到原来的位置,并记住在更新模型之前发布数据库!

    希望这有助于某人。