none
entity framework tabelas sem chave primária RRS feed

  • Pergunta

  • Galera boa tarde.

    Tenho duas tabelas no banco de dados SQL, uma de cliente e outra de endereço, as duas não tem chave primária.

    Gerei o Edmx desse banco, uma tabela gerou normal, a outra está apresentando um aviso e não gerou.

    Aviso: não tem uma chave primaria definida:(The table/view 'teste.dbo.Endcli' does not have a primary key defined and no valid primary key could be inferred. This table/view has been excluded. To use the entity, you will need to review your schema, add the correct keys, and uncomment it.)

    Como eu poderia está gerando essa outra tabela? Não posso mexer na estrutura das tabelas, e eu só tenho acesso de leitura do banco.

    Obrigado!

    quarta-feira, 10 de junho de 2015 18:15

Todas as Respostas

  • Cara, que problemão você tem hein?! Qual SGBD você está usando? é preciso verificar as regras do sgbd, porque pode ser que não permita você gerar esse relatório mesmo. Pode ser que essa que não deu erro possua uma foreign key.
    quarta-feira, 10 de junho de 2015 18:22
  • Felipe, tem como postar todo o código aqui? ou então descrever a torina. Pelo que vi na descrição do erro parece que tem código comentado.
    quarta-feira, 10 de junho de 2015 18:29
  • Farias, boa tarde!

    Estou usando a versão 2012, verifiquei aqui a tabela que gerou e não tem uma foreign key, muito estranho..

    Estou pensando em fazer esse processo em Ado.net com procedure..

    quarta-feira, 10 de junho de 2015 18:32
  • quarta-feira, 10 de junho de 2015 18:34
  • Boa idéia, tenta fazer com ADO, pode dar certo...
    quarta-feira, 10 de junho de 2015 18:55
  • Felipe,

    Vamos lá!

    1. Clique com o botão direito no seu arquivo edmx e depois na opção Open With;
    2. Na nova janela selecione o item XML (Text) Editor;
    3. Descomente a tabela que não foi mapeada;
    4. Crie a chave manualmente conforme o exemplo abaixo.
    <EntityType Name="NOME_TABELA">
              <Key>
                <PropertyRef Name="ID" />
              </Key>
              <Property Name="ID" Type="number" Nullable="false" Precision="12" />
              <Property Name="DESCRICAO" Type="varchar2" Nullable="false" MaxLength="500" />
            </EntityType>

    Abraço,


    Carlos Eduardo Ferreira

    quarta-feira, 10 de junho de 2015 18:55
  • Felipe, bom dia. O Carlos Eduardo te deu uma solução. Pelo que eu sei, o Entity só mapeia tabelas com PK e é o certo. Criar uma tabela sem PK, ainda mais tabelas de cadastros, como é seu caso, não é uma boa idéia. Bem, outra coisa percebi em você quer desistir do EF e em outro forum dei uma resposta semelhnte. Você não conseguiu resolver o problema e pensa em mudar de tecnologia. Cara, a menos que tenha uma motivação bem forte, desistir diante de problemas aparentemente sem solução, cara, não seria uma boa. Isso te frustará no futuro. Vá fundo, pesquise, queime neurônios, pergunte, melhore a pergunta, leia, enfim, te daria N motivos para ir adiante. Se você souber o que já passei, tenho todos os motivos do mundo para te incentivar a buscar a solução para o seu problema. Tente resolver, não desista. Trampar com EF é bacana. Bem, isso é só a minha humilde opinião.
    • Sugerido como Resposta pnet quinta-feira, 11 de junho de 2015 15:59
    • Não Sugerido como Resposta William John Adam TrindadeModerator sexta-feira, 12 de junho de 2015 12:53
    • Sugerido como Resposta Farias-BH terça-feira, 8 de setembro de 2015 16:31
    quinta-feira, 11 de junho de 2015 11:13