【问题标题】:Error 3004, mapping error with EF错误 3004,EF 映射错误
【发布时间】:2011-08-21 08:26:05
【问题描述】:

好的,因为我的问题已经解决了,我一直在浏览代码,直到现在:我现在遇到了一个我什至在 Google 上找不到任何东西。这是错误的文本:

错误 3004:映射问题

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

如果您需要任何代码示例,请告诉我

【问题讨论】:

    标签: entity-framework-4


    【解决方案1】:

    该错误意味着您导入模型的表包含未映射到您的实体的附加列ItemPrice

    【讨论】:

    • 这也是我最初的想法,直到我无法做到任何符合该标准的东西。正如你在这里看到的图片,看看你是否可以资助错误 rlm.cc/lScfAd
    【解决方案2】:

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

    【讨论】:

    • 我现在遇到了类似的问题。请告诉我在这种情况下是什么解决了您的问题
    【解决方案3】:

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

    1. Dev A 在 数据库项目然后更新他们的模型。一切构建良好,数据库 有 mytable.newcol 并且模型反映了这一点。
    2. Dev B 拉取/同步 但忘记将更改发布到其本地数据库。这 模型有 mytable.newcol 但他们的本地数据库没有。
    3. Dev B 然后以某种方式更改模型并从数据库中更新它, VS 发现 mytable.newcol 不存在,因此它变得未链接。

    4. 开发人员 B 意识到他们的错误并发布数据库更改。

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

      对于开发人员 B,VS 然后抱怨 mytable.newcol 没有映射并且 失败。

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

    希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-11-23
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 2011-08-29
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多