2012-02-13 98 views
1

EF新手,尝试使用“数据库优先”。EF数据库优先 - 映射错误3025

Error 3025: ... :Must specify mapping for all key properties 
        (PurchaseUsers.PurchaseUsersId) of table PurchaseUsers. 

我有我的数据库3个表:

Purchases  Participants  PurchaseUsers 
PurchaseId  ParticipantId  PurchaseUsersId 
...    ...     PurchaseId 
            ParticipantID 

PurchaseUsers是知道使用买下了参与者(S)是(是)。

起初我没有在该表上的PK,但后来当我试图保存Purchase时出现以下错误。 谷歌搜索后,我发现我不得不添加一个PK来避免这个错误。

Unable to update the EntitySet 'PurchaseUsers' because it has a DefiningQuery 
    and no <InsertFunction> element exists in the <ModificationFunctionMapping> element 
    to support the current operation. 

但添加PK创建映射错误,我只是无法弄清楚如何解决这个问题或创建一个映射。 表格PurchaseUsers本身在我的.edmx模型中不可见,但它在模型浏览器的商店中列出。

谢谢。

UPDATE

当天更改数据库中的一列的名称。 “从数据库更新模型”将新列名添加到模型中的表中,但未删除旧列名。 不得不再次从头开始。 看起来更新功能不能很好地工作。

+0

在数据库中添加主键之后,是否更新过模型(在设计器中)? – Pawel 2012-02-14 05:19:18

+0

@Pawel是的,我做到了。在那一刻,我得到了3025错误。这些关系也是在db级别上设置的。在我的模型中,表参与者和购买之间存在一个mazny-to-many关系。我想这就是事情出错的地方,因为桥表不在模型中连接这两个表。 – Koen 2012-02-14 07:25:17

+0

这很奇怪。你是否尝试过完全删除模型并从头开始创建?如果这个窗台不适合你 - 你能发布一个最小的repro? – Pawel 2012-02-14 21:16:53

回答

1

这很奇怪。从数据库更新模型应使模型和数据库同步。尝试从头开始删除并重新创建模型。