Como faço para eliminar o Erro 3002?

Digamos que tenho as seguintes definições de tabela no SQL Server 2008:

CREATE TABLE Person
(PersonId INT IDENTITY NOT NULL PRIMARY KEY,
 Name VARCHAR(50) NOT NULL,
 ManyMoreIrrelevantColumns VARCHAR(MAX) NOT NULL)

CREATE TABLE Model
(ModelId INT IDENTITY NOT NULL PRIMARY KEY,
 ModelName VARCHAR(50) NOT NULL,
 Description VARCHAR(200) NULL)

CREATE TABLE ModelScore
(ModelId INT NOT NULL REFERENCES Model (ModelId),
 Score INT NOT NULL,
 Definition VARCHAR(100) NULL,
 PRIMARY KEY (ModelId, Score))

CREATE TABLE PersonModelScore
(PersonId INT NOT NULL REFERENCES Person (PersonId),
 ModelId INT NOT NULL,
 Score INT NOT NULL,
 PRIMARY KEY (PersonId, ModelId),
 FOREIGN KEY (ModelId, Score) REFERENCES ModelScore (ModelId, Score))

A idéia aqui é que cada Pessoa possa ter apenas um ModelScore por Modelo, mas cada Pessoa poderá ter uma pontuação para qualquer número de Modelos definidos. Tanto quanto posso dizer, esse SQL deve impor essas restrições naturalmente. O ModelScore tem um "significado" específico, que está contido na definição. Nada de quebrar a terra lá.

Agora, tento traduzir isso no Entity Framework usando o designer. Depois de atualizar o modelo do banco de dados e fazer algumas edições, eu tenho um objeto Person, um objeto Model e um objeto ModelScore. PersonModelScore, sendo uma tabela de junção, não é um objeto, mas é incluído como uma associação com outro nome (digamos, ModelScorePersonAssociation). Os detalhes de mapeamento para a associação são os seguintes:

- Association
  - Maps to PersonModelScore
    - ModelScore
        ModelId : Int32       <=>  ModelId : int
        Score : Int32         <=>  Score : int
    - Person
        PersonId : Int32      <=>  PersonId : int

No lado direito, os valores ModelId e PersonId possuem símbolos de chave primária, mas o valor de Pontuação não.

Na compilação, recebo:

Error 3002: Problem in Mapping Fragment starting at line 5190: Potential runtime violation of table PersonModelScore's keys (PersonModelScore.ModelId, PersonModelScore.PersonId): Columns (PersonModelScore.PersonId, PersonModelScore.ModelId) are mapped to EntitySet ModelScorePersonAssociation's properties (ModelScorePersonAssociation.Person.PersonId, ModelScorePersonAssociation.ModelScore.ModelId) on the conceptual side but they do not form the EntitySet's key properties (ModelScorePersonAssociation.ModelScore.ModelId, ModelScorePersonAssociation.ModelScore.Score, ModelScorePersonAssociation.Person.PersonId).

O que fiz de errado no designer ou não, e como posso corrigir o erro?

Muito Obrigado!

questionAnswers(5)

yourAnswerToTheQuestion