2012-02-13 3 views
1

EFの初心者で、 "Database first"で何か試してみてください。私は私のデシベルに3つのテーブル持ってEFデータベースの最初のマッピングエラー3025

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

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

テーブルPurchaseUsersは、参加者(複数可)を知ることで、購入を使用して(いる)です。

最初に私はそのテーブルに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

は今日、データベース内の列の名前を変更しました。 "データベースからモデルを更新する"は、新しい列名をモデルのテーブルに追加しましたが、古い列名は削除しませんでした。 もう一度最初からやり直す必要がありました。 update-functionがうまく動作していないようです。

+0

データベースにプライマリキーを追加した後に(デザイナで)モデルを更新しましたか? – Pawel

+0

@Pawelはい、しました。そしてその瞬間、私は3025エラーを受け取ります。また、リレーションはdbレベルで設定されます。私のモデルでは、テーブルParticipantsとPurchasesの間にmazny-to-manyの関係があります。そして、ブリッジテーブルが2つのテーブルをリンクするモデルにないため、状況が間違っていると思います。 – Koen

+0

これは奇妙です。あなたはモデルを完全に削除してゼロから作成しようとしましたか?この敷居があなたのために働かない場合 - あなたは最小限の執筆を投稿できますか? – Pawel

答えて

1

これは奇妙です。モデルをデータベースから更新すると、モデルとデータベースを同期させる必要があります。モデルを一から削除して再作成してみてください。

関連する問題