Usuário com melhor resposta
como definir chave no Entity

Pergunta
-
Pessoal tudo bem?
Estou fazendo uma aplicação usando EF ctp5, quando eu tento gravar, eu recebo essa mensagem
System.Data.Edm.EdmEntityType: : EntityType 'Area' has no key defined. Define the key for this EntityType.
e outras mensagens como esta relacionada as outras tabelas.
vlw galera pela ajuda
grande abraço
Ricardo Soares
Respostas
-
Ricardo, você adicionou a referência System.ComponentModel.DataAnnotations ao Projeto?
Tente também colocar o atributo com o Namespace completo:
public class Area { [System.ComponentModel.DataAnnotations.Key] public int Codigo { get; set; } public string Nome { get; set; } }
Abs.
Nalin- Sugerido como Resposta Fabiano Nalin sexta-feira, 14 de dezembro de 2012 14:36
- Marcado como Resposta ricardosoares1rj sábado, 15 de dezembro de 2012 15:26
Todas as Respostas
-
Olá Ricardo!
Fica difícil lhe ajudar com tão poucas informações. De qualquer forma segue alguns links que me ajudaram e poderão lhe ajudar também nesse maravilhoso mundo do EF5:
MVPs blog:
http://carloscds.net/
http://ferhenriquef.com/Vídeos:
http://www.youtube.com/watch?feature=player_detailpage&v=lFthQksjCm8
http://www.youtube.com/playlist?list=PLE94A660890783ADF&feature=g-user-uAbs.
Nalin -
obrigado fabiano, me perdoe, vou detalhar.
eu to usando o EF ctp5 e o template poco é gerado pelo EF 5 DBContext Generator
todas as minhas tabelas, os campos chaves eu usei o nome Codigo.
quando eu tento salvar um registro, eu recebo a mensagem de erro que postei acima.
O que eu entendi, é que o EF, não conseguiu identificar quais são os campos primary key.
as classe geradas estão assim:
namespace MDA.Biblioteca.Persistencia { using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; public partial class GCD { public GCD() { this.Estatistica = new HashSet<Estatistica>(); this.MembrosGCD = new HashSet<MembrosGCD>(); this.Membros = new HashSet<Membros>(); } // Primitive properties public int Codigo { get; set; } public string Descricao { get; set; } // Navigation properties public virtual ICollection<Estatistica> Estatistica { get; set; } public virtual Setor_GCD Setor_GCD { get; set; } public virtual ICollection<MembrosGCD> MembrosGCD { get; set; } public virtual ICollection<Membros> Membros { get; set; } } }
Ricardo Soares
-
Ricardo, o erro se deve numa entidade chamada Area.
Vá na classe onde se encontram as propriedades dessa Entidade e coloque o atributo [Key]:
public class Area { [Key] public int Codigo { get; set; } public string Nome { get; set; } }
Para mais informações, acesse: http://ferhenriquef.com/2011/10/28/entity-framework-data-annotations/.
Abs.
Nalin -
-
Ricardo, você adicionou a referência System.ComponentModel.DataAnnotations ao Projeto?
Tente também colocar o atributo com o Namespace completo:
public class Area { [System.ComponentModel.DataAnnotations.Key] public int Codigo { get; set; } public string Nome { get; set; } }
Abs.
Nalin- Sugerido como Resposta Fabiano Nalin sexta-feira, 14 de dezembro de 2012 14:36
- Marcado como Resposta ricardosoares1rj sábado, 15 de dezembro de 2012 15:26
-