Entity Framework – Adicionar propriedade de navegação manualmente

Eu gerou um modelo de estrutura de entidades (4.0) do meu database. Eu não criei o database e não tenho nenhum controle sobre o esquema, mas há algumas tabelas que não têm restrições de chave estrangeira definidas, mas há um relacionamento implícito definido.

Por exemplo:

Eu tenho uma tabela chamada Pessoas que possui as seguintes colunas: GenderID RaceID

Existem tabelas para Gênero e Raça, mas não há chave estrangeira na tabela Pessoas.

Quando importei o modelo, ele não adicionou as Propriedades de Navegação para esses relacionamentos. Eu tentei adicioná-lo manualmente, mas a partir de papel e para a function estão desativados. Não sei como adicionar o relacionamento a mim mesmo. Como eu faço isso?

Sim – não é tão simples.

Veja o que você faz:

1 – Clique com o botão direito no designer, Adicionar -> Associação

2 – Configurar a associação e cardinalidades (Pessoas * .. 1 Gênero, Pessoas * .. 1 Raça)

3 – Entre no Navegador de Modelos -> Associações

4 – Clique com o botão direito em suas associações recém-criadas, clique em Propriedades

5 – Aqui você precisa configurar os terminais para as opções de chave e cascata. Certifique-se de obter os endpoints corretos. Você também pode configurar uma restrição referencial aqui para sua propriedade de navegação implícita.

6 – Mapeie a propriedade de navegação para as tabelas / campos relevantes.

7 – Valide seu modelo, cruze os dedos.

Espero que isto ajude.

Me deparei com este post do blog que propõe a seguinte solução, que funcionou muito bem para mim (infelizmente eu não consegui fazer o RPM1984 funcionar na minha situação).

  1. Adicione uma Associação através do designer background clique com o botão direito do mouse no menu contextual
  2. Configure sua associação (não esqueça de criar a chave estrangeira)
  3. Clique com o botão direito do mouse na associação e escolha Propriedades
  4. Clique no botão ... para restrição referencial
  5. Configure a relação entre as chaves dentro
  6. Verificar (no menu contextual do designer)
  7. ???
  8. Lucro!